无法获得以编程方式生成的DIV的第二个ID

时间:2016-04-04 14:02:24

标签: php jquery ajax

我使用fullcalendar,当我点击某个事件时,创建的div(弹出窗口)会显示有关该事件的信息。在此弹出窗口中,我可以修改或删除该事件。

要调用DELETE事件我做了这个:

$(document).on('click', 'button.DeleteEventId', function(e){
    e.preventDefault();
    var idEventDelete = $('.DeleteEventId').data('idevent');
.... and ajax.... and success....

div以编程方式生成:

content: '<div>' + event.text + '</div><div style="margin-right:10px;"><a href="load/' + event.idClient + '" class="btn btn-default btn-xs" role="button">Display</a><button type="button" class="btn btn-info btn-xs UpdateEventId" data-idevent="' + event.id + '">Modify</button><button type="button" class="btn btn-danger btn-xs DeleteEventId" data-idevent="' + event.id + '">Delete</button></div>'

问题是可以删除第一个事件,但下一个事件不能发生,因为发送到ajax的ID是FIRST id。因此,当我在按钮后面查找id时,id很好。例如: 我删除了ID 27,它有效,我想删除ID 33,我在HTML中查找ID,它的33,但是当我点击删除ID 27时发送。

1 个答案:

答案 0 :(得分:2)

问题在于:

var idEventDelete = $('.DeleteEventId').data('idevent');

您指的是分配给多个元素的类,并尝试获取被单击的特定元素的ID。将该行更改为:

var idEventDelete = $(this).data('idevent');

$(this)指的是点击的特定元素。