Ajax 板


LINE

或許我不該擅自決定那樣的事件補獲叫做繼承吧 就書上所講事件往子元素傳遞那樣叫事件補獲 而你說的情形是事件冒泡 必須要子元素和父元素都綁定同樣的事才會觸發 就是子元素li click之後連帶父元素的ul click事件也觸發 在子元素上同樣綁定click事件後 就會發現像你剛那種情形 點li 後 li 和 ul click一樣觸發 所以在你程式裡加這行 就變成事件冒泡 $( '#list1' ).bind( 'click', function(evt) { alert( 'UL event' ); }); 而我說的情形是事件補獲 只是子元素會去觸發父元素所綁定的事件 父元素綁定click 那li click後 就會觸發父元素click 所以彈出視窗當然只會彈出一次 而父元素如果綁定dblclick 那子元素也是點擊二下後觸發父元事的dblclick 所以我指的繼承意思其實是指 子元素會去觸發父元素所綁定的事件 這樣而己 所以當 ul綁定 click li沒綁定click 這就是事件補獲 照你的程式跑 點擊li 後會彈出一次視窗 如果當 ul綁定 click li也同樣綁定click 那就是事件冒泡 點擊li 後會 先彈出 li的click事件 再彈出ul的 click事件 可能是我繼承名詞引起你的誤會吧 還是你覺得哪邊怪怪的= =? ※ 引述《adahsu (路邊的垃圾筒)》之銘言: : ※ 引述《etman395 (技術時代)》之銘言: : : 事件向上觸發 才叫冒泡 只有父元素有相同事件就會一直觸發上去 : : bind("click",function(event){ : : event.stopPropagation(); //這是阻止事件冒泡 : : event.preventDefault(); //這是阻止預設行為 : : return false; //可以代替以上簡寫 我試過是有效的 但僅只於阻止冒泡不能阻止補獲 : : } : : 事件向下觸發 叫做事件補獲 剛好和冒泡相反 : : 而且有點不同 不同的地方在於 子元素會繼承父元素的事件 : : 而事件冒泡是觸發父元素相同的事件 : : 而我那本書裡是提到 jquery不支持事件補獲 : : 必須要用javascript來阻止 : : 看來阻止的方式就是剛解決的這行了 : : if (event.target == this) : event 是很 nice 的,這其中一定有什麼誤會.... (誤) : 個人倒是覺得這種情形真的是 事件的繼承 嗎? : 或者說這個看起來像是 li 繼承 ul 事件處理的情形會不會實際 : 上只是因為 li 不知道這個事件要做啥其實只是把事件往上傳遞 : 給 ul 的錯覺呢? : 用個例子來看,先在 UL 上綁定一個 click 事件處理程序, : 內容就很單純的彈出一個訊息視窗:UL event; : 如果 LI 有繼承到這個事件處理程序,那麼當我們點擊到 LI 元素時, : 它應該要彈出一次 UL event 視窗,然後事件往上傳遞到 UL 元素, : 這時又要再彈出一次視窗。相關程式碼如後列,而實際執行起來一直都只有 : 一個 UL Event 的提示視窗,應該足以認定 LI 其實並沒有所謂繼承 UL : 事件的情形,對否? : 進一步的話其實還可以探究利用 CSS 將 LI 元素的位置移到別的地方去時, : 事件處理流程是否會因而改變? =======> 答案是不會! : 喔,對了!這確定是原本的疑問嗎? : <html> : <head> : <title>Event</title> : <script type="text/javascript" src="http://0rz.tw/07U36"></script> : <script type="text/javascript"> : $( document ).ready(function(){ : $( '#container' ).bind( 'click', function(evt) { : alert( 'UL event' ); : // 未使用 Firefox+ firebug 或 Chrome 的話, : // 以下這行要註解掉! : console.log( evt.target ); : }); : }); : </script> : <style type="text/css"> : #list3 { : position: absolute; : right: 0; : bottom: 0; : } : #list2 { : margin: 20px; : } : </style> : </head> : <body> : <ul id="container"> : <li id="list1">List 1</li> : <li id="list2">List 2</li> : <li id="list3">List 3</li> : </ul> : </body> : </html> --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.83.12 ※ 編輯: etman395 來自: 123.110.83.12 (12/06 15:11)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP