Javascript “最好的方法”;单击“离开”;从下拉菜单?
可能重复:Javascript “最好的方法”;单击“离开”;从下拉菜单?,javascript,jquery,Javascript,Jquery,可能重复: 我有一个下拉菜单,在单击时显示。当用户点击离开它时,它就会消失 对于点击即时通讯,请使用: $("#title").click(function() { dropdown_show(); ); $('body').click(function(e) { if ((!$(e.target).is('#title'))&&(!$(e.target).is('#dropdown'))) { dropdown_hide(); }
我有一个下拉菜单,在单击时显示。当用户点击离开它时,它就会消失 对于点击即时通讯,请使用:
$("#title").click(function() {
dropdown_show();
);
$('body').click(function(e) {
if ((!$(e.target).is('#title'))&&(!$(e.target).is('#dropdown'))) {
dropdown_hide();
}
});
但当用户点击时,我会使用:
$("#title").click(function() {
dropdown_show();
);
$('body').click(function(e) {
if ((!$(e.target).is('#title'))&&(!$(e.target).is('#dropdown'))) {
dropdown_hide();
}
});
有没有更好的方法可以知道用户何时单击身体,而不必在每次用户单击身体时运行事件?您可能可以使用焦点事件,因此如果它不在焦点中,您可以将其隐藏。以下是您只能在菜单单击事件中设置正文单击事件,并在单击正文单击事件时使用.unbind删除正文单击事件
您可能需要使用.bind,并使用一个命名空间:仅供参考,
$(e.target).is(“#title”)
更容易写成e.target.id!='标题“
。您可能希望使用。一个,而不是。单击隐藏上的。您可以在节目中附加它,然后使用捕获的变量来确定您是否仍在节目中,而不是再次运行选择器。