img 标签上设置 src 属性, 就开始请求资源; script 设置完 src 要加载到 dom 上才开始请求资源。
在 document 上使用事件委托, 好处如下:
currentTarget 可以用于确定是具体元素上触发的事件;target 用于事件委托;具体差异可以看以下 demo, 当点击 你好 时, 控制台输出两个 true; 当点击 muyunyun 时, 控制台输出一个 true 和一个 false。
<body><p id="test">你好, <span>muyunyun</span></p><script>const content = document.getElementById('test')content.addEventListener('click', function(e) {console.log('currentTarget', e.currentTarget, 'target', e.target)console.log(this === e.currentTarget) // trueconsole.log(this === e.target) // false})</script></body>
(笔者认为)自定义事件可以归类到发布订阅模式下。
<input id="sec" /><script>// 订阅document.getElementById('sec').addEventListener('custom', function (obj) {console.log(obj.detail) // { demo: this ia a demo }})// 发布var ev = new CustomEvent('custom', { detail: { demo: 'this is a demo' } })document.getElementById('sec').dispatchEvent(ev)</script>
from child element to parent element;the remaining same event type in one element;