JQuery .hover有记忆

Tim*_*sen 0 jquery

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

jQuery("#navigation li").hover(
    function(){jQuery(this).children("ul").slideToggle("fast");}, 
    function(){jQuery(this).children("ul").slideToggle("fast");
});
Run Code Online (Sandbox Code Playgroud)

但是当我#naviagtion li多次快速悬停时,它会保持slideToggling相同的次数.你怎么阻止这样做.

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

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

gen*_*sis 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");

});
Run Code Online (Sandbox Code Playgroud)