簡體   English   中英

綁定點擊事件在動態創建的元素中不起作用

[英]Bind click event not work in dynamic created elements

我稱呼ajax,成功時我會建立按鈕元素。 像這樣 :

...
    .done(function(data) {
                $('#data-message').empty();
                // console.log(data);
                $('#total_notification_msg').html(data.total);

                $.each(data.data, function(index, value) {
                  // console.log(value);
                  var redirectRead = '{{ route("adm1n.message.show", ":id") }}'
                  redirectRead = redirectRead.replace(":id", value.id);

                  var pesan = value.message.substr(0,100);

    $('#data-message').append('<button id='reply' class='btn btn-default btn-xs' style='margin-top:5px;'>Reply</button>");
                });
              })
    ...

但是,我無法在#reply按鈕上添加click事件。

我已經在使用onclick事件:

$(document).on('click', '#reply', function() {
     alert('Reply here');
});

// or this ...

$('#reply').click(function() {
     alert('Reply here');
});

但這仍然行不通。

請幫忙,謝謝^^

使用字符串創建元素時,需要正確使用引號。

$('#data-message').append('<button class="reply btn btn-default btn-xs" style="margin-top:5px;">Reply</button>");

動態生成元素時,請使用.on()委托事件方法使用事件委托

$('#data-message').on('click', '.reply', function() {
     alert('Reply here');
});

由於標識符必須唯一,因此請使用類。

您需要更改兩件事:

  1. 正確的報價。
  2. 將ID更改為class。

$('#data-message').append("<button class='btn btn-default btn-xs reply' style='margin-top:5px;'>Reply</button>");
//-----------------change here-----------------------------------^^^^^

因為您處於循環狀態,並且您正在復制相同的ID。

將事件綁定更改為class:

$(document).on('click', '.reply', function() {
     alert('Reply here');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM