可以';t获取程序生成的DIV的第二个ID


Can't get the second ID of a DIV programmatically generated

我使用的是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是第一个ID。因此,当我在按钮后面查找ID时,ID是好的。例如:我删除了ID 27,它起作用了,我想删除ID 33,我在HTML中查找ID,它是33,但当我点击删除ID 27时,它就被发送了。

问题就在这里:

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

您正在引用分配给多个元素的类,并试图获取被单击的特定元素的id。将该行更改为:

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

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