Visualizzazione risultati 1 fino 1 di 1

Discussione: jQuery e problema con .click()

  1. #1
    Guest

    Predefinito jQuery e problema con .click()

    Salve a tutti,

    per la realizzazione di uno script sto usando i seguenti codici, in pratica al click su un elemento "li" all' interno di un div (rappresentato da obj) vengono eseguite alcune azioni a seconda delle varie if:

    Codice:
    objContent.find("li").click(function() {
    	if(obj.find("input").val() == "") {
    		$(this).addClass("selected");
    		obj.find("input").val($(this).attr("data-value"));
    		obj.find("div").html("1 prodotto");
    	} else {
    		alert("Ok, ora..");
    		if(obj.find("input").val().indexOf($(this).attr("data-value")) == -1) {
    			$(this).addClass("selected");
    			alert("Messo, succede qualcosa?");
    		} else {
    			alert("rimosso");
    			$(this).removeClass("selected");
    			if(obj.find("input").val().indexOf(";") == -1) {
    				alert("controllo ; ");
    			} else {
    				alert("trovati ;");
    			}
    		}
    	}
    	objContent.css("display","none");
    });
    I problemi arrivano ora, praticamente controlla se cliccando su di un "li" il value di un input è uguale a nulla, allora assegna il valore del li a quell' input, altrimenti ...

    Nell' altrimenti (else relativo all' esser vuoto del value dell' input) iniziano i problemi, infatti cliccando su un altro li, (e da ora per capirci utilizzerò gli alert messi proprio come predisposizione) appaiono gli alert "Ok ora", "Messo cosa succede?" e fin qui va tutto come dovrebbe, se non per il fatto che riesegue l' azione rimandando "Ok ora" e a volte "Messo cosa succede", cliccando poi nuovamente sul <li>, riesegue lo stesso ciclo per 3 volte (quindi manda 3 volte Ok ora, Messo cosa succede).

    Da cosa può esser dovuta questa cosa? Prima utilizzavo la stessa funzione (cioè il click sul li non questi contenuti) ma non succedevano questi casini. Ogni volta che si avvera l' else, ripeterà quel "ciclo" tante volte quanti i click + 1, ovvero se è il primo click lo farà due volte, se è il secondo tre volte, se è il terzo quattro volte e via dicendo.

    EDIT: Ho notato che il click "doppio" viene effettuato solo se nascondo il box con i <li> da cliccare..
    Ultima modifica di demobloggest : 11-10-2012 alle ore 00.07.57

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •