Domanda

E 'possibile fermare il preventDefault automatica () da applicare in una semplice levetta funzioni Jquery?

$(".mydiv").toggle(
    function () {
        $(this).addClass("blue");
    },
    function () {
        $(this).removeClass("blue");
    }
);

È possibile che impedisce elementi all'interno del div di rispondere normalmente al click.

Non deve essere la funzione di commutazione () -. Tutto ciò che permette la commutazione di una classe dentro e fuori e non restituisce falso sarebbe grande

Grazie.

È stato utile?

Soluzione

La documentazione ammette questo come una limitazione:

Dal .toggle () utilizza internamente un gestore di clic per fare il suo lavoro, dobbiamo Unbind fare clic per rimuovere un comportamento fissato con .toggle (), in modo che altri gestori di clic possono essere catturati nel fuoco incrociato. L'implementazione richiede anche .preventDefault () sull'evento, quindi non sarà seguito i link ei pulsanti non sarà cliccato se .toggle () è stato chiamato sull'elemento.

fonte: http://api.jquery.com/toggle/

Vale a dire, non c'è modo integrato. Fortunatamente, come la documentazione dice anche, che è "relativamente semplice da implementare lo stesso comportamento a mano". In questo caso:

$(".mydiv").click(function(){
  $(this).toggleClass("blue");
}}

(Per saperne di più toggleClass () .)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top