剛開始點擊body空白處并沒有效果~
剛開始的時候跟很多人遇到的問題一樣,那就是點擊body空白處的時候,并沒有任何反應。但是如果先點擊button之后,再點擊body空白處就有效果了。很困惑為什么會這樣?從代碼上看明顯是給body元素綁定了click事件,那為什么剛開始點body的空白處沒效果呢?
偶然間看到有大神回復說是因為剛開始的時候body的高度只到button下面為止,點擊button下面的空白是沒效果的,需要點擊button后面的空白才會有效。試了一下,發現確實是這樣,初想一下感覺貌似確實是這個道理。但再深一步的驗證下,發現貌似又不是這樣。驗證方法如下:
????????????”給body加上background-color“
發現整個瀏覽框(不止是button,還包括button下面的所有空白處)都有背景色,證明剛開始body的高度并不是只到button下面為止。這時我就很納悶了~到底該如何理解?很困惑~望各位大神指導~
2017-06-08
很好理解吧。給body增加個樣式。就知道body的位置在哪里了。js代碼中的對象是body,是對body的點擊觸發事件的,所以你點擊body以外的區域是沒有反應的,而在body區域中的隨處一個地方點擊都是會觸發事件。
2017-03-21
樓上不知后覺大兄弟正解
2017-03-21
樓上正解
2017-02-15
上面的解釋都有點問題,你問到的大神給你的回復是正確的,至于為什么會出現你最后的這個疑惑,這個問題就牽扯到了對<body>和<html>這兩個標簽的理解。
為什么你給body設置顏色以后,瀏覽器的背景全都會變成紅色?
因為此時html標簽沒有被激活,此時的body成了根節點的節點,它的背景顏色被瀏覽器捕獲,所以你看到的頁面全為紅色是瀏覽器的背景色。,再說一下,是瀏覽器的背景色。
當你給html標簽設置背景色為綠色后,會發現,瀏覽器的背景顏色變成了綠色,而紅色只覆蓋到button標簽下面,因為此時瀏覽器捕獲到的根節點的節點是html,所以它的背景色就成了瀏覽器的背景色。
這就很容易理解為什么點擊button下面的部分的時候沒有反應,而點擊上面的部分div就會出現。
2017-01-17
我又來了,信不信這回好使。這個和?<script type="text/javascript">的位置有關,你寫成外聯就會完全好使了,因為寫在body里是隨著那些頁面元素一起加載的,他后面的空白是不受那個javascript函數的控制,寫在body里的javascript函數只對前面的頁面元素有效。
2017-01-15
用這個<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js">點哪都沒用。用這個<script src="http://libs.baidu.com/jquery/1.9.1/jquery.js">才是你說的“藍色區域的click都是有效的”。應該是它的原因?!鸷鼮g覽器
2017-01-13
on()綁定事件 ?body中包含bottom控件 ?則按鈕可以將它們的?Click?事件轉發給包含控件。這樣,按鈕實現綁定控件定義的自定義功能 ? 我是這樣認為的 ?不知道對不對
2017-01-12
經驗證,發現下圖中藍色區域的click都是有效的,紅色區域的部分click都是無效的~
2017-01-12
點擊有效標簽,包括空白標簽,才能激發?$body.on('click', function(),
你點擊最左邊的紅色區域,就不會激發$body.on('click', function(),,因為那里不是默認的空白標簽,但是右邊就可以,因為那里默認