Re: [問題] jquery attr onclick IE7 & 8

看板Ajax作者 (多想兩分鐘 = =")時間14年前 (2011/01/30 03:36), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串6/7 (看更多)
http://www.w3.org/TR/DOM-Level-2-Events/events.html void addEventListener(in DOMString type, in EventListener listener, in boolean useCapture); 第三個參數 useCapture,意思是…先來個圖比較好解釋 http://goo.gl/bamuu click 某個 button實際發生的事是, 以 html→body→button→body→html 這樣的順序去觸發 click事件 capturing bubbling 從父往子叫 capturing,從子往父叫 bubbling,所以需要第三個參數指定順序 簡單的範例:http://jsfiddle.net/ndKcr/1/ 點內層的 div看事件的觸發順序就知道差別了 == 然後,用ajax更新(append)的 dom元素不會觸發事件是因為…通常都會忘記重新綁事件。 jquery的解法:live就是把事件綁在 body上, 它強大的 selector會找到是誰該觸發什麼事件。 如果瞭解標準定義的事件模型, 就會覺得 live的事件都要跑到 body才觸發,在效能上會不會比較慢? 所以在 1.4之後多了 delegate可以讓你指定該綁在哪,而不是統一綁在 body上。 這樣的方式(live, delegate)也可解決直接把事件綁在 dom元素上, 移除 dom元素可能會造成某些 *破舊* 瀏覽器產生的 memory leak問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.10.63

01/30 04:44, , 1F
live 只要給 context 也可以指定綁在哪.
01/30 04:44, 1F

01/30 04:44, , 2F
所以我很少用delegate
01/30 04:44, 2F

01/30 21:50, , 3F
喔,對,感謝補充
01/30 21:50, 3F

01/31 21:32, , 4F
請問 live 怎麼給 context
01/31 21:32, 4F

02/01 07:34, , 5F
jq("td","table").live這樣可以把事件綁在table上。
02/01 07:34, 5F

02/01 07:34, , 6F
看 doc 有說明...
02/01 07:34, 6F
文章代碼(AID): #1DH6n8Kp (Ajax)
文章代碼(AID): #1DH6n8Kp (Ajax)