0x00 三种动态创建元素方法的对比
1 document.write();如果页面文档流加载完了再调用会重绘页面,
这种方法会删除之前的页面并重建一个页面,然后将函数中的内容写入新页面;
2 innerHTML
在创建大量元素时效率更高(使用字符数组,不能拼接字符串);结构更复杂一些;
3 creatElement();
在创建大量元素时效率稍低,但结构更加清晰;
0x01 事件注册
注册事件有两种方式,注册事件和绑定事件
onclick()等都是处理函数,注册事件一个元素只能设置一个相同的处理函数,后面的处理函数会将前面的处理函数覆盖
但是绑定事件可以做到同一事件绑定多个监听器,所以更为推荐使用绑定事件 // ie9后的方法为addEventListener()
addEventListener(type, listener, useCapture)
type 事件类型字符串
listener 事件处理函数
useCapture 在DOM树中,注册了listener的元素, 是否要先于它下面的EventTarget,调用该listener。 当useCapture(设为true) 时,沿着DOM树向上冒泡的事件,不会触发listener。当一个元素嵌套了另一个元素,并且两个元素都对同一事件注册了一个处理函数时,所发生的事件冒泡和事件捕获是两种不同的事件传播方式。事件传播模式决定了元素以哪个顺序接收事件。。 如果没有指定, useCapture
默认为 false
删除事件监听可以使用removeEventListener()