Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    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[*], 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.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io t'ho perso, forse una demo online chiarisce, e comunque aiuta
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ahah è difficile da spiegare in effetti, mmm vediamo.. Strano, provando i codici in "separata sede" non danno problemi, provo a vedere cosa non va e aggiorno qua..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Vabbè, dato che il problema è qui, metto questo link: http://www.slimmer.altervista.org/

    Cliccando sul "select" nel form del preventivo a destra, dove c'è scritto "Seleziona un prodotto" (non facciamo caso ai codici CSS del sito, non sono miei), apparirà un minibox dove ci saranno delle opzioni da cliccare (lo script emula un select), cliccando sulle voci la prima volta appare l' alert "iniziamo" e tutto è ok, già dalla seconda volta iniziano i problemi, infatti appariranno due alert "iniziamo" e da là via dicendo.

    I codici (visibili anche in scripts/selects.js della sorgente pagina):

    codice:
    	$(".select").click(function() {
    		var obj = $(this);
    		var id = obj.attr("id");
    		$(".selectContent").each(function() {
    			if($(this).attr("data-id") == id) {
    				if($(this).css("display") == "block") {
    					$(this).css("display","none");
    				} else {
    					objContent = $(this);
    					var x = obj.offset().left;
    					var y = obj.offset().top;
    					var h = parseInt(obj.css("height").replace("px",""));
    					objContent.css("left", x);
    					objContent.css("top", y + h);
    					objContent.css("display","block");
    				}
    			}
    		});
    		objContent.find("li").click(function() {
    			alert("iniziamo");
    			objContent.css("display","none");
    		});
    	});

    EDIT: HO NOTATO CHE SE NASCONDO IL BOX ACCADE IL PROBLEMA, MENTRE SE NON LO NASCONDO NO.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  5. #5
    Nessuna idea? Ho capito, mi toccherà mettere un tasto apposito per chiudere il box..
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Con IE 8 non vedo nessun box e nessun alert
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.