Stopping Event Propagation 的危害
如何实现检测点击区域是否在某个元素以外?
很多人都会像排名第一的答案那样做,如下:
$(window).click(function() {
//Hide the menus if visible
});
$('# menucontainer').click(function(event){
event.stopPropagation();
});
这却会导致一个问题:点击事件停止冒泡了,可能会使得其他程序无法知道事件的发生。
那么如何做能解决这个问题呢,答案如下:
$(document).on('click', function(event) {
if (!$(event.target).closest('# menucontainer').length) {
// Hide the menus.
}
});
document 监听了点击事件,判断 event target 是否是 # menucontainer 或父元素是 # menucontainer,如果不是,那你就可以知道点击区域在 # menucontainer 之外。
来源: The Dangers of Stopping Event Propagation
关键字:JavaScript, event, function, hide
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!