Jquery,如何:点击div之外的任何地方,div淡出

Exo*_*las 8 jquery

在Jquery中,如果我有一个div,其中包含不同的元素,一个选择,一个搜索输入等,当我点击div之外,在页面上,div淡出,但是我可以点击选择并输入搜索输入而不是淡入淡出?任何帮助表示赞赏.-缺口

jps*_*ons 25

Code Duck的答案是不完整的,因为如果你单击DIV本身(仅在外面),你需要让它淡出.所以说你应该淡出的DIV有一个ID"菜单".

jQuery("#menu").click(function(){ return false; });
jQuery(document).one("click", function() { jQuery("#menu").fadeOut(); });
Run Code Online (Sandbox Code Playgroud)

使用一个比bind/unbind更简洁.此外,如果您使用名称空间事件,则实际上并不需要它,因为不需要在文档上显式取消绑定特定的单击处理程序.

返回假只是说:"停止冒泡这个事件到文档中."

  • 不,当您打开菜单时,您可以调用此代码."一个"意味着它会发射一次然后解除绑定.菜单关闭后,单击所有你想要的地方,没有任何约束或被调用. (2认同)
  • 一个更惯用的jQuery方法是做jQuery("#menu").click(function(ev){ev.stopPropagation();}); (2认同)