A元素内包含B元素,点击A内B以外的部分执行clickhandler
页面点击经常会有这样的需求,点击某元素之外的地方将指定元素给隐藏起来。
页面元素点击事件绑定:
$(document).on('click',':not(.panel)',function(){
$panel.hide();
return;
})
这样就可以监听除了下拉框区域之外的点击事件,将下拉面板给隐藏起来。
但是这样点击下拉框区域中的任意元素,还是会隐藏下拉面板,.panel这个元素区域也属于document范围内,这里发生了事件冒泡,所以还要在下拉框区域的单击事件中阻止事件冒泡。
$(".panel").click(function(event){
event.stopPropagation();
});