2010-01-13 5 views
4
$("li").hover(
function() { 
    // do x 
}, 
function() { 
    // do y 
}); 

.. thats pour hover, comment ferais-je la même chose pour click toggle, c'est-à-dire x sur click et y sur second clic?Cliquez sur Bascule (jQuery)

Manythanks

Répondre

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

.toggle() est SUPPRIMÉ en 1.9, utilisez 1.8 ou une version antérieure. – bobthyasian

11

$.toggle() prendra un certain nombre de fonctions. Ici, il est avec deux:

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

Démo: http://jsfiddle.net/vbkBQ/

+0

Il m'a fallu beaucoup de temps pour essayer de trouver cela. Vous pouvez aussi le faire avec click et hover - brilliant. Je voulais savoir comment faire si autrement dans une fonction comme celle-ci .. repped. Bookmarked. – TheBlackBenzKid

0

Un problème avec bascule() est qu'il appelle automatiquement event.preventDefault(). Voici une façon de laisser l'action par défaut en place ou de ne l'appeler que conditionnellement.

$("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); 
});​​