|
|
|
|
|
今天在做網(wǎng)頁設(shè)計時,用了jQuery的鼠標(biāo)點擊事件(click-event),但發(fā)現(xiàn)$("body").on("click"
這代碼,在點擊 body 時無反應(yīng)。
$("body").on("click",function(e){
if(e.target.id != "custom-select") {
$("#select-option-box").hide();
}
});
這是什么原因呢?
我一開始是更改body的寬度、高度,給body標(biāo)簽加上class名,加上id名,但統(tǒng)統(tǒng)都不能解決問題。
難道對于 body 的點擊事件(click-event),不能這樣寫代碼?
研究發(fā)現(xiàn):
在body的空白處,即是在沒有任何元素填充的body空余處,點擊事件(click-event)是不能發(fā)生的,點擊事件(click-event)要點擊某個元素才有效。
明白了這個原因,我們只需用div或其他元素把body完全填充不留空地,那么在body的任何地方點擊事件(click-event)就不會無效了。
我看到網(wǎng)上有人提到這樣寫:
<body onclick="...">
但是仍然會出現(xiàn)上面我說的問題,所以這并不能解決問題。
結(jié)論
通過查閱了不少相關(guān)資料,body的點擊事件(click-event)確實需要點了某一元素才能發(fā)生,正如前面所言,在body的空白處,即是在沒有任何元素填充的body空余處,點擊事件(click-event)是不能發(fā)生的。
解決方法
如前面所述,我們只需用div或其他元素把body完全填充不留空地,那么在body的任何地方點擊事件(click-event)就不會無效了。