在mouseout和timer上切换jQuery切换

时间:2012-08-22 07:44:03

标签: jquery toggle

在我的网站上,我有一个按钮。如果你点击它,就会出现一个下拉列表。如果再次单击它。它会消失。 我使用jQuery函数TOGGLE。 现在我想要以下内容。如果您移出下拉列表2秒钟,或者单击下拉列表外的某个位置。它必须再次消失。

有没有办法用计时器切换切换功能并点击外面? 这是代码:

$(Ar3).addClass(aU);
$('.ContextMenuLink').toggle(function () {
    $(hP).css('background', '#fff');
    $('.ContextMenuTxt').css('color', '#6b8592');
    $(CM).css('display', 'block');
    $(Ar3).addClass(aD).removeClass(aU);
}, function () {
    $(hP).css('background', 'none');
    $('.ContextMenuTxt').css('color', '#fff');
    $(CM).css('display', 'none');
    $(Ar3).removeClass(aD).addClass(aU);
});

1 个答案:

答案 0 :(得分:0)

只需将您的计时器设置为发出$('.ContextMenuLink').click()

至于外部点击,我会做这样的事情:

$(document).click(function outSideClick(e){
    if(e.target != $('.ContextMenuLink')[0]){
        $('.ContextMenuLink').click();
        $(document).unbind('click',outSideClick);
    })
});

每当您通过单击或使用计时器关闭下拉列表时,您还应该记住取消绑定此事件。