Нажмите Toggle (jQuery) - PullRequest
       15

Нажмите Toggle (jQuery)

4 голосов
/ 13 января 2010
$("li").hover(
function () {
    // do x
},
function () {
    // do y
});

.. вот для hover, как бы я сделал то же самое для переключения клика, т.е. сделать x при клике и y при втором клике?

Manythanks

Ответы [ 3 ]

11 голосов
/ 13 января 2010

$.toggle() будет выполнять любое количество функций. Вот с двумя:

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

Демо: http://jsfiddle.net/vbkBQ/

11 голосов
/ 13 января 2010
$('li').toggle(function() {
 alert(1)
}, function() {
 alert(2);
});
0 голосов
/ 18 октября 2012

Одна проблема с toggle () заключается в том, что он автоматически вызывает event.preventDefault(). Вот один из способов, который позволит вам оставить действие по умолчанию или разрешить его вызывать только условно.

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