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()