|
|
|
|
|
今天在做網(wǎng)頁設(shè)計(jì)時(shí),用了jQuery的鼠標(biāo)點(diǎn)擊事件(click-event),但發(fā)現(xiàn)$("body").on("click"
這代碼,在點(diǎn)擊 body 時(shí)無反應(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)都不能解決問題。
難道對(duì)于 body 的點(diǎn)擊事件(click-event),不能這樣寫代碼?
研究發(fā)現(xiàn):
在body的空白處,即是在沒有任何元素填充的body空余處,點(diǎn)擊事件(click-event)是不能發(fā)生的,點(diǎn)擊事件(click-event)要點(diǎn)擊某個(gè)元素才有效。
明白了這個(gè)原因,我們只需用div或其他元素把body完全填充不留空地,那么在body的任何地方點(diǎn)擊事件(click-event)就不會(huì)無效了。
我看到網(wǎng)上有人提到這樣寫:
<body onclick="...">
但是仍然會(huì)出現(xiàn)上面我說的問題,所以這并不能解決問題。
結(jié)論
通過查閱了不少相關(guān)資料,body的點(diǎn)擊事件(click-event)確實(shí)需要點(diǎn)了某一元素才能發(fā)生,正如前面所言,在body的空白處,即是在沒有任何元素填充的body空余處,點(diǎn)擊事件(click-event)是不能發(fā)生的。
解決方法
如前面所述,我們只需用div或其他元素把body完全填充不留空地,那么在body的任何地方點(diǎn)擊事件(click-event)就不會(huì)無效了。