我有一個動態生成的表格。就像這樣:動態生成的按鈕不適用於Javascript
<thead>
<tr>
<th>Task</th>
<th>options</th>
</tr>
</thead>
<tbody id="tasks-list">
@foreach($tasks as $task)
<tr id="contact_{{$contact->id}}">
<td>{{task->name}}
<td><button class="btn btn-warning btn-xs btn-detail open-modal" value="{{$contact->id}}">Edit</button>
<button class="btn btn-danger btn-xs btn-delete delete-task" value="{{$contact->id}}">Delete</button></td>
</tr>
@endforeach
</tbody>
</table>
然後我有一個按鈕來添加一個新的任務與AJAX。
當成功地增加了一個任務,一個新行與最近創建的信息將追加:
var task = '<tr id="contact_' + data.id + '">' +'<td>' + data.name + '</td>' +
'<td><button class="btn btn-warning btn-xs btn-detail open-modal" value="' + data.id + '">Editieren</button><div style="margin-left: 3px"' +
'<button class="btn btn-danger btn-xs btn-delete delete-task" value="'
+ data.id + '">Löschen</button></td></tr>';
$('#tasks-list').append(task);
這工作得很好。所有內容都正確添加並且按鈕具有與Blade生成的相同的Propeties。 Ids也是正確的,沒有區別。當我點擊編輯或刪除時,我沒有得到任何迴應。甚至沒有在控制檯中的錯誤。當我刷新網站時,按鈕可以正常工作,因此存儲的信息實際上是正確的。
任何幫助,將不勝感激。
編輯:處理器
$('.delete-task').click(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
})
var task_id = $(this).val();
$.ajax({
type: "DELETE",
url: '/task_edit/' + task_id,
success: function (data) {
console.log(data);
$("#contact_" + contact_id).remove();
},
error: function (data) {
console.log('Error:', data);
}
});
});
,但我99 %確定您需要將它們更改爲委派的事件處理程序。 –
要知道你的問題,你必須顯示編輯按鈕事件處理程序。 –
@RoryMcCrossan添加處理程序。 – prgrm