关于javascript:从下拉菜单中“点击”的最佳方式?

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中删除事件处理程序的最佳方法?