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
;