2016-10-10 54 views
1

我想做一些簡單的事情,一個頁面在加載時有0個按鈕,然後每次點擊我在一行中添加一個按鈕。當我點擊這些按鈕時,它會將其刪除。Cant DOM添加了html按鈕

我試圖

$(":button").click(function(){ 
}) 

,但似乎無法得到已被點擊,如果我開始頁面使用這些按鈕已經在它的按鈕,它的工作原理。我錯過了什麼?

+1

委託點擊事件.... https://learn.jquery.com/events/event-delegation/ –

回答

2

當前你正在使用的是被稱爲「直接」綁定,它只會在代碼進行事件綁定調用時附加到頁面上存在的元素。

需要使用.on()委派的事件的方式,生成動態元素或操作選擇器(如刪除和添加的類)時使用Event Delegation

常規語法

$(parentStaticContainer).on('event','selector',callback_function) 

$(document).on('click', ":button", function(){ 
    //Your code 
}); 

在地方的document你應該用最接近的靜態容器。

委派事件的優點是它們可以處理後來添加到文檔中的後代元素的事件。通過選擇在委託事件處理程序附加時保證存在的元素,我們可以使用委託事件將click事件綁定到動態創建的元素,並避免頻繁附加和移除事件處理程序。

一個良好的閱讀Direct and delegated events

+0

非常感謝您Satpal! <3 –