JQuery .hover有记忆

时间:2011-09-04 11:26:42

标签: jquery

我正在使用以下简单代码制作下拉菜单:

jQuery("#navigation li").hover(
    function(){jQuery(this).children("ul").slideToggle("fast");}, 
    function(){jQuery(this).children("ul").slideToggle("fast");
});

然而,当我快速地将#naviagtion li多次悬停时,它将保持slideToggling相同的次数。你怎么阻止这样做。

我在代码中弄乱了某种标志(isSliding)以查看它当前是否正在切换但是当我使用它时它似乎真的很麻烦。 (我在开始滑动之前设置了标志,在回调中我再次将标志设置为false。在我调用函数之前,我只有一个if(isSliding)语句。

示例:http://jsfiddle.net/8KxCd/2/

1 个答案:

答案 0 :(得分:6)

使用.stop()

http://jsfiddle.net/genesis/8KxCd/4/

jQuery("#navigation li").hover(

function() {

    jQuery(this).children("ul").stop(true, true).slideToggle("fast");
}, function() {
    jQuery(this).children("ul").stop(true, true).slideToggle("fast");

});