Css Twitter引导:如何在2秒后自动隐藏下拉菜单?

Css Twitter引导:如何在2秒后自动隐藏下拉菜单?,css,twitter-bootstrap,drop-down-menu,Css,Twitter Bootstrap,Drop Down Menu,以这个片段为例,如何在鼠标光标离开下拉菜单区域后使下拉菜单自动隐藏 Amazon.com就是一个很好的例子。如果将鼠标移到“按部门购物”上,然后将光标移开,并在约0.5秒内将其移回,则下拉菜单仍将可见 引导程序片段: 我想我可以做一个setTimeout,但它会隐藏它,即使在我决定在这2秒钟内将光标移回下拉列表。也许我可以清除鼠标上方的setTimeout,来解决这个问题 在这种情况下,人们通常会做什么?您需要在mouseout事件上附加var x=setTimeout('hideme()',2

以这个片段为例,如何在鼠标光标离开下拉菜单区域后使下拉菜单自动隐藏

Amazon.com就是一个很好的例子。如果将鼠标移到“按部门购物”上,然后将光标移开,并在约0.5秒内将其移回,则下拉菜单仍将可见

引导程序片段

我想我可以做一个
setTimeout
,但它会隐藏它,即使在我决定在这2秒钟内将光标移回下拉列表。也许我可以清除鼠标上方的
setTimeout
,来解决这个问题


在这种情况下,人们通常会做什么?

您需要在mouseout事件上附加
var x=setTimeout('hideme()',2000)
并在mousein回调上取消
cleartimout(x)

您需要在mouseout事件上附加
var x=setTimeout('hideme()',2000)
并取消
cleartimout(x)
关于mousein回调的另一个建议

使用函数处理悬停,其中包含元素和事件。所以你知道什么时候用鼠标,什么时候用鼠标。 您可以使用函数属性保存计时器,并在需要时清除它

另一个建议

使用函数处理悬停,其中包含元素和事件。所以你知道什么时候用鼠标,什么时候用鼠标。 您可以使用函数属性保存计时器,并在需要时清除它


这在firefox中非常有效,但在chrome中不起作用!有什么想法吗?这在firefox中非常有效,但在chrome中不起作用!有什么想法吗?
var handleHover = function(evObj){
    var $this = $(this);

    if(!$this.hasClass('open')){
        return true;
    }

    if(evObj.type === 'mouseleave'){
        //    on mouseleave...
        handleHover.timer = setTimeout(function(){
            $this.removeClass('open');
        },2000);

    } else if(evObj.type === 'mouseenter'){
        //    on mouseenter...
        if(handleHover.timer){    //    find timer and clear it
            clearTimeout(handleHover.timer);
            delete handleHover.timer;
        }
    }
};


$('#myDropDown').hover(handleHover);