如何使用jQuery将事件绑定到任何click

时间:2009-12-22 10:55:28

标签: jquery

当用户点击.popup_link时,会显示一个小弹出窗口,并删除任何其他弹出窗口:

$("a.popup_link").click(function(){
    hide_all_popups()
    make_popup($(this).id)  
});

但是当用户点击页面上弹出窗口的其他任何地方时,我也希望它hide_all_popups()。我需要这样的东西:

$("[ANY]:not(a.popup_link)").click(function(){
    hide_all_popups()
});

我该怎么做?

3 个答案:

答案 0 :(得分:3)

$(document).click(hide_all_popups);

$("a.popup_link").click(function(){
    hide_all_popups()
    make_popup($(this).id);
    return false; // this line is very important it tells the event (click) to not go further (to not go to hide_all_popus)...
});

答案 1 :(得分:2)

将“隐藏”处理程序绑定到文档中,并且不允许事件在“show”处理程序中冒泡。

答案 2 :(得分:1)

Ben Nadel在这里有一个非常好的教程解决了你的问题。将mousedown事件绑定到文档元素而不是使用onclick的想法。我会让你阅读教程,因为当我遇到同样的问题时,它对我很有帮助。

$(document).bind('mousedown', function() {
            //hide all popups
        });

http://www.bennadel.com/blog/1754-Track-Document-Level-Clicks-With-jQuery-MouseDown-Events.htm