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