Re: [問題] jquery 的 .on() 要如何用純 js 實現

看板Web_Design作者 (red whale)時間7年前 (2017/08/19 00:20), 7年前編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
※ 引述《tyf99 (呵呵)》之銘言: : 如果想把某類元素(包含未來可能出現的同類元素)都加上 event handler : 用純 js 要如何實現? : 例如放在購物車裡面的商品,可以用按鈕來修改數量. : 現在是把 <button class="plus"> 綁上 goodsIncrease() : 以後加入的新商品,也都會自動綁上 goodsIncrease() : jquery 的寫法是 $(document).on("click", "button.plus", goodsIncrease) : 這要如何改寫成不用 jquery 的版本? var elm=document.querySelectorAll("button.plus"); for(var i=0;i<elm.length;i++){ elm[i].onclick=function(event){ goodsIncrease.call(elm[i],event); }; } 如果瀏覽器不支援querySelectorAll,請找querySelectorAll的polyfill。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.5.226 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1503073243.A.D03.html

08/19 00:44, , 1F
這無法套用到未來才出生的元素啊
08/19 00:44, 1F

08/19 00:57, , 2F
https://jsfiddle.net/nzxwpaup/1 jQuery是能綁未來元素的
08/19 00:57, 2F

08/19 01:21, , 3F
對新增的button加上onclick的function即可
08/19 01:21, 3F

08/19 01:21, , 4F

08/19 01:54, , 5F
我是要 browser extension 注入 js 用的,只能綁一次
08/19 01:54, 5F

08/19 01:55, , 6F
按鈕增加那部分不是我能控制的
08/19 01:55, 6F

08/19 02:27, , 7F
1. event bubbling/capturing 2. mutationObservor
08/19 02:27, 7F
把上述原始碼包成一個函數 在新增按鈕的同時呼叫該函數即可 ※ 編輯: red0whale (114.44.5.226), 08/19/2017 03:41:04
文章代碼(AID): #1PbnFRq3 (Web_Design)
文章代碼(AID): #1PbnFRq3 (Web_Design)