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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請幫忙解釋一段代碼(js阻止冒泡傳遞)

請幫忙解釋一段代碼(js阻止冒泡傳遞)

undertale 2016-09-26 01:38:58
這段代碼有點看不懂,主要是畫線的三個地方 第一個,section.length指的是多少?是4嗎?是點擊我!的長度嗎? 第二個,函數傳入的event參數,應該就是onclick吧?如果這括號里不寫event,寫空或者隨便寫個字符(例如e)可以嗎? 第三個,this.classname指的是innermost,event.target.classname指的是regular嗎? 還有一個疑問,這段代碼應該是this.classname轉換成了regular,然后stop了,阻止了冒泡傳遞,但怎么轉換成regular的,這個過程有點不懂啊
查看完整描述

7 回答

已采納
?
人生還有多少個二十年

TA貢獻3條經驗 獲得超1個贊

解答1:答案為3(你腳本里的第一句是將所有section標簽節點獲取并保存在變量sections中,代碼中出現了三個標簽,所有sections的length(長度)應該是3)

解答2:不是onclick,不能為空,可以用其他標識符代替,如e,但標識符不能是隨便取的。(當你點擊了section標簽所有的區域時,會觸發onclick事件,此時事件的處理函數會接收到一個參數,即事件對象,由于在函數中你要用到該對象,所以你要給定一個參數去接收它,該參數可以命名為event或者e,或者用其它可讀性較強的標識符

解答3:this.classname是變化的(依次為"innermost","regular"),event.target.classname是唯一的("innermost")。(首先,當你點擊了“點擊我!”的位置時,觸發綁定在類名為innermost的section標簽的onclick事件,然后開始冒泡,正常的話會依次觸發regular,outermost上的事件,而你在它冒泡到regular時,就阻止了它繼續冒泡,因而無法觸發outermost上的的事件,)


如果我說了這么多,你還不明白,你也不用灰心,多看書,多看視頻,慢慢就會懂了。

給你推薦一下視頻:http://www.xianlaiwan.cn/learn/138



查看完整回答
1 反對 回復 2016-09-26
?
微積分2016

TA貢獻53條經驗 獲得超69個贊


看書《JavaScript高級程序設計》第三版

查看完整回答
1 反對 回復 2016-09-26
?
qq_安逸_4

TA貢獻12條經驗 獲得超5個贊

事件冒泡:是觸發當前事件,會使得其外層事件被觸發,知道冒泡到document,。

本例中如果regular類標簽有個點擊事件彈出“regular”,當innermost里的事件被觸發后,會使得reguler里的點擊事件觸發,從而導致彈出“regular”

在本例中由于獲取了所有<section>標簽,賦值給數組sections,所以遍歷該數組,即可獲取className為regular的節點。

查看完整回答
反對 回復 2016-09-26
?
vone

TA貢獻23條經驗 獲得超2個贊

第三 事件函數中的this代表的是當前冒泡到的對象
event.target指的是最初觸發該事件的對象

查看完整回答
反對 回復 2016-09-26
?
vone

TA貢獻23條經驗 獲得超2個贊

第二事件函數傳入的參數是當前的事件對象,里邊儲存的是事件的信息 比如按下的鍵什么的? 名字可以隨便輸

查看完整回答
反對 回復 2016-09-26
?
vone

TA貢獻23條經驗 獲得超2個贊

第一 length的長度應該是3 是所有匹配標簽的長度

查看完整回答
反對 回復 2016-09-26
  • 7 回答
  • 0 關注
  • 1850 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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