2017-06-01 102 views
0

我正在使用jquery和datatables动态地生成编辑和删除按钮。我需要以后访问它们与JavaScript,我不能让它的工作。访问动态生成的按钮

我有这样的渲染功能:

render: function (data) { 
          var actions = ''; 
          actions += '<div class="btn-group btn-group-xs">'; 
          actions += '<div id="'+data.id+'" class="buttonUpdate btn btn-primary"><span class="glyphicon glyphicon-pencil"></span></div>'; 
          actions += '<div id="'+data.id+'" class="buttonDelete btn btn-danger"><span class="glyphicon glyphicon-trash"></span></div>'; 
          actions += '</div>'; 
          return actions; 
         } 

而且我可以看到按钮显示正确。

我试图让与事件:

$('.buttonDelete').click(function() { 
     alert('button clicked'); 
     console.log(this.id); 
     //window.location.href = "{!! route('employee') !!}/"+employee_id; 
    }); 

但它没有做任何事情:(

我怎样才能得到事件,也是我怎么可以看到,如果正确生成按钮?用正确的ID和类

+2

退房[委派事件](http://api.jquery.com/on/#direct-and-delegated-events)。您的处理程序不起作用,因为它已明确分配给处理程序初始化之前存在的元素。动态添加的元素必须在父元素上处理传播的事件。 –

回答

5

看看Delegated Events

变化:

$('.buttonDelete').click(function() { 

到:

$(document).on('click', '.buttonDelete', function() { 
+0

随意复制意大利面的解释和链接从我的评论,如果你想。 –

+0

好吧,我读过你发送的链接,非常感谢你,非常清楚... – Richard