Re: [问题] jquery 的 .on() 要如何用纯 js 实现?

楼主: bibo9901 (function(){})()   2017-08-19 03:16:52
※ 引述《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 发出来的
}
})
作者: tyf99 (呵呵)   2017-08-19 16:28:00
感谢,这个就是我要的
作者: Kenqr (function(){})()   2017-08-19 18:37:00
作者: outofyou   2017-08-20 11:42:00
作者: jhnny97 (≡(  ゚Д゚))   2017-08-20 13:33:00
一直以为这样target会回传document,原来可以回传各个element,受教了,推推

Links booklink

Contact Us: admin [ a t ] ucptt.com