当用户点击.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()
});
我该怎么做?
答案 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