亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

剛開始點擊body空白處并沒有效果~

剛開始的時候跟很多人遇到的問題一樣,那就是點擊body空白處的時候,并沒有任何反應。但是如果先點擊button之后,再點擊body空白處就有效果了。很困惑為什么會這樣?從代碼上看明顯是給body元素綁定了click事件,那為什么剛開始點body的空白處沒效果呢?

偶然間看到有大神回復說是因為剛開始的時候body的高度只到button下面為止,點擊button下面的空白是沒效果的,需要點擊button后面的空白才會有效。試了一下,發現確實是這樣,初想一下感覺貌似確實是這個道理。但再深一步的驗證下,發現貌似又不是這樣。驗證方法如下:

????????????”給body加上background-color“

發現整個瀏覽框(不止是button,還包括button下面的所有空白處)都有背景色,證明剛開始body的高度并不是只到button下面為止。這時我就很納悶了~到底該如何理解?很困惑~望各位大神指導~

正在回答

9 回答

很好理解吧。給body增加個樣式。就知道body的位置在哪里了。js代碼中的對象是body,是對body的點擊觸發事件的,所以你點擊body以外的區域是沒有反應的,而在body區域中的隨處一個地方點擊都是會觸發事件。

http://img1.sycdn.imooc.com//593910e8000168ce04050111.jpg

http://img1.sycdn.imooc.com//593910e90001d2f004010245.jpg


0 回復 有任何疑惑可以回復我~

樓上不知后覺大兄弟正解

0 回復 有任何疑惑可以回復我~

樓上正解

0 回復 有任何疑惑可以回復我~

上面的解釋都有點問題,你問到的大神給你的回復是正確的,至于為什么會出現你最后的這個疑惑,這個問題就牽扯到了對<body>和<html>這兩個標簽的理解。

為什么你給body設置顏色以后,瀏覽器的背景全都會變成紅色?

因為此時html標簽沒有被激活,此時的body成了根節點的節點,它的背景顏色被瀏覽器捕獲,所以你看到的頁面全為紅色是瀏覽器的背景色。,再說一下,是瀏覽器的背景色。

當你給html標簽設置背景色為綠色后,會發現,瀏覽器的背景顏色變成了綠色,而紅色只覆蓋到button標簽下面,因為此時瀏覽器捕獲到的根節點的節點是html,所以它的背景色就成了瀏覽器的背景色。

這就很容易理解為什么點擊button下面的部分的時候沒有反應,而點擊上面的部分div就會出現。

2 回復 有任何疑惑可以回復我~

我又來了,信不信這回好使。這個和?<script type="text/javascript">的位置有關,你寫成外聯就會完全好使了,因為寫在body里是隨著那些頁面元素一起加載的,他后面的空白是不受那個javascript函數的控制,寫在body里的javascript函數只對前面的頁面元素有效。

0 回復 有任何疑惑可以回復我~

用這個<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覽器

0 回復 有任何疑惑可以回復我~
#1

gaoboss 提問者

我用Chrome 版本:"51.0.2704.103 m" 示例中的script的鏈接是可以直接用的 藍色區域的click是有效的~
2017-01-16 回復 有任何疑惑可以回復我~

on()綁定事件 ?body中包含bottom控件 ?則按鈕可以將它們的?Click?事件轉發給包含控件。這樣,按鈕實現綁定控件定義的自定義功能 ? 我是這樣認為的 ?不知道對不對

0 回復 有任何疑惑可以回復我~
#1

gaoboss 提問者

其他教程上關于on()的解釋:"on() 方法在被選元素及子元素上添加一個或多個事件處理程序。"
2017-01-16 回復 有任何疑惑可以回復我~

經驗證,發現下圖中藍色區域的click都是有效的,紅色區域的部分click都是無效的~

http://img1.sycdn.imooc.com//587748c10001346d03350198.jpg

0 回復 有任何疑惑可以回復我~

點擊有效標簽,包括空白標簽,才能激發?$body.on('click', function(),

http://img1.sycdn.imooc.com//587742710001dee402490152.jpg

你點擊最左邊的紅色區域,就不會激發$body.on('click', function(),,因為那里不是默認的空白標簽,但是右邊就可以,因為那里默認

0 回復 有任何疑惑可以回復我~
#1

gaoboss 提問者

好像并不是這樣,如果點擊button左邊的紅色區域也是有效果的~
2017-01-12 回復 有任何疑惑可以回復我~
#2

gaoboss 提問者

貌似直接使用實例中的源碼時,點擊button左側空白是沒有效果,但是我給button加了一個外邊距的效果,把button左側的空白區域變大了之后,點擊button左側就會有效果~~~ 搞暈了,剛開始學前端,只知其表面,不知道深層原理,確實容易暈~
2017-01-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

剛開始點擊body空白處并沒有效果~

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號