2020年3月23日 星期一

關於jquery使用on('click')然後append出來的按鈕的dom操作無法作用問題. click to append buttons cannot access with dom.

狀況:按鈕上使用on('click')函式想要在點擊後append出一個按鈕

html內有一個class為btn的案鈕
<a href="#">test button</a>

在script內加入以下語法

$('.btn').on('click',function(e){
    e.preventDefault();
    $('body').append("<a href='#' class='btn'>append a button</a>");
})


原本是希望點擊第一個btn能夠append出第二個btn,點擊第二個btn能夠appedn出第三個btn ...... 依序下去.

但實際運行時append出來的按鈕點擊時卻沒有反應,必須把上面標注的那段on click改為如下:

$(document).on('click', '.btn', function(e) {
    e.preventDefault();
    $('body').append("<a href='#' class='btn'>append出來的按鈕</a>");
})


因為append出來的btn按鈕不在一開始就load進來的dom上,所以點擊沒有作用。
把on click往上拉到在文件內點擊class為btn的所有按鈕,這樣就可行了

沒有留言: