$(“body”).on(“click” 点击body无反应的原因

今天在做网页设计时,用了jQuery的鼠标点击事件(click-event),但发现$("body").on("click" 这代码,在点击 body 时无反应。

$("body").on("click",function(e){
if(e.target.id != "custom-select") {
$("#select-option-box").hide();
}
});

这是什么原因呢?

我一开始是更改body的宽度、高度,给body标签加上class名,加上id名,但统统都不能解决问题。

 

难道对于 body 的点击事件(click-event),不能这样写代码?

研究发现:

在body的空白处,即是在没有任何元素填充的body空余处,点击事件(click-event)是不能发生的,点击事件(click-event)要点击某个元素才有效。

明白了这个原因,我们只需用div或其他元素把body完全填充不留空地,那么在body的任何地方点击事件(click-event)就不会无效了。

我看到网上有人提到这样写:

<body onclick="...">

但是仍然会出现上面我说的问题,所以这并不能解决问题。

结论

通过查阅了不少相关资料,body的点击事件(click-event)确实需要点了某一元素才能发生,正如前面所言,在body的空白处,即是在没有任何元素填充的body空余处,点击事件(click-event)是不能发生的。

解决方法

如前面所述,我们只需用div或其他元素把body完全填充不留空地,那么在body的任何地方点击事件(click-event)就不会无效了。