Best way to “click away” from a drop down menu?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to detect a click outside an element?
我有一个下拉菜单,单击时显示。当用户单击离开它时,它就消失了。
对于单击即时消息,使用:
1 2 3 | $("#title").click(function() { dropdown_show(); ); |
但是当用户单击离开时,我使用:
1 2 3 4 5 | $('body').click(function(e) { if ((!$(e.target).is('#title'))&&(!$(e.target).is('#dropdown'))) { dropdown_hide(); } }); |
是否有更好的方法来知道用户何时单击,而不必每次用户单击主体时都运行事件?
您也许可以使用焦点事件,所以如果它不在焦点中,您可以隐藏它。这是jquery的API
只能在菜单"单击事件"中设置body click事件,并在单击时使用.unbind删除body click事件。
您可能想使用.bind和一个命名空间:在jquery中删除事件处理程序的最佳方法?