看板 Web_Design 關於我們 聯絡資訊
※ 引述《tyf99 (呵呵)》之銘言: : 如果想把某類元素(包含未來可能出現的同類元素)都加上 event handler : 用純 js 要如何實現? : 例如放在購物車裡面的商品,可以用按鈕來修改數量. : 現在是把 <button class="plus"> 綁上 goodsIncrease() : 以後加入的新商品,也都會自動綁上 goodsIncrease() : jquery 的寫法是 $(document).on("click", "button.plus", goodsIncrease) : 這要如何改寫成不用 jquery 的版本? 這叫 event delegation, 也就是把 callback 綁定到 document 上, 再透過 event object 確定觸發的element document.addEventListener("click", function(event){ var target = event.target if ( target.matches("button.plus") ){ goodsIncrease.call(target, event) //假裝是某個 button.plus 發出來的 } }) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.8.48.101 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1503083814.A.47E.html
tyf99: 感謝,這個就是我要的 08/19 16:28
Kenqr: 推 08/19 18:37
outofyou: 推 08/20 11:42
jhnny97: 一直以為這樣target會回傳document,原來可以回傳各個ele 08/20 13:33
jhnny97: ment,受教了,推推 08/20 13:33