Domanda

$("li").hover(
function () {
    // do x
},
function () {
    // do y
});

.. thats per hover, come farei lo stesso per click di commutazione, cioè fare x il clic e y sul secondo click?

ManyThanks

È stato utile?

Soluzione

$('li').toggle(function() {
 alert(1)
}, function() {
 alert(2);
});

Altri suggerimenti

$.toggle() prenderà qualsiasi numero di funzioni. Qui è con due:

$("li").toggle(
  function() { /* do x */ },
  function() { /* do y */ }
);

Demo: http://jsfiddle.net/vbkBQ/

Un problema con la levetta () è che si chiama automaticamente event.preventDefault(). Ecco un modo che vi permetterà di lasciare l'azione di default al posto o permettere di chiamare solo condizionatamente.

$("a").click(function(event){
    var toggle = ($(this).data('toggle') == undefined) ? true : $(this).data('toggle');
    console.log(toggle);

    if(toggle){
        event.preventDefault();
    }

    $(this).data('toggle', !toggle);
});​​
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top