我使用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时发送。
答案 0 :(得分:2)
问题在于:
var idEventDelete = $('.DeleteEventId').data('idevent');
您指的是分配给多个元素的类,并尝试获取被单击的特定元素的ID。将该行更改为:
var idEventDelete = $(this).data('idevent');
$(this)
指的是点击的特定元素。