在一個HTML中動態的添加一個元素,常用有兩種方法:一個是js方法,一個是jquery方法。
他們都有的問題是動態創建的元素無法綁定已經寫好的腳本。
也就是說,假如你為所有的按鈕都綁定一個點擊事件,當你新創建一個按鈕,這個按鈕卻沒有綁定點擊事件。
這個跟用什么寫的腳本無關,而是因為動態添加元素之前,頁面和js已經加載完畢。事件也已經綁定了,而動態添加的新元素沒有被綁定,所以也就響應不了請求。
————————————————
創建元素這里沒必要多講,主要講解決方法
JS方法
1、通過他的父元素,也就是給他的父元素綁定事件,從父元素為起始點找到他的子元素(新添加的元素),也就是“事件委托”。不過這樣要計算如何找到子元素(沒有試驗過,純理論)。
2、借助事件屬性target :target事件屬性可返回事件的目標節點(觸發該事件的節點),語法: event.target(沒有實驗,復制粘貼過來的)
3、留個空,不知道有沒有
####JQuery方法
1、使用on方法,$(“父元素”).on(“click”,”要綁定事件的元素”,function(){方法體},親測有效,這也是所謂的事件委托。
2、使用delegate方法
在w3school上的定義。
3、使用live方法,這個只是聽說,也沒有試驗過。
釜底抽薪的辦法
既然綁定不上新添加的元素,那就在添加元素的語句里加入需要綁定的事件直接進行綁定,親測有效,最直接的根據原因解決問題
以上辦法歡迎討論,但僅供參考,最好親自實驗、