我在Laravel中使用Laravel数据表来创建带有过滤器的数据表。我也需要一个自定义列,所以我添加了以下代码:
->addColumn('estado', function ($previsitas) {
return $previsitas->f_salida ? '<a id="delete" class="text-danger" data-toggle="tooltip" data-placement="top" title="Cambiar estado" href="' . route('visitas.estado', [$previsitas->id]) . '"><strong>Salida</strong></a>' :'<a class="text-success" data-toggle="tooltip" data-placement="top" title="Cambiar estado" href="' . route('visitas.estado', [$previsitas->id]) . '"><strong>Entrada</strong></a>';
})->rawColumns(['estado'])
此代码完美运行。我也需要调用此专栏以提示带有甜味警报的消息。我用这个...
$('#delete').click(function () {
swal('Test');
});
当我单击列时没有任何反应,但是当我在刀片中使用id='delete'直接创建元素时,就可以了。
所以错误很简单:我不能在数据表列中调用带有 id 的元素,但如果直接在边栏选项卡中使用,我可以调用该元素。为什么会发生此错误?
我认为你需要为此使用jQuery事件委托。目前,调用 $("#delete").click(...)
会将click
事件分配给 DOM 元素 $("#delete")
,该元素在分配时不存在。如果将click
事件分配给目标为 "#delete"
的 "body"
,这应该对您有用:
$("body").on("click", "#delete", function () {
swal("Test");
});
此代码
$('#delete').click(function () {
swal('Test');
});
可能在之前执行
->addColumn('estado', function ($previsitas) {
return $previsitas->f_salida ? '<a id="delete" class="text-danger" data-toggle="tooltip" data-placement="top" title="Cambiar estado" href="' . route('visitas.estado', [$previsitas->id]) . '"><strong>Salida</strong></a>' :'<a class="text-success" data-toggle="tooltip" data-placement="top" title="Cambiar estado" href="' . route('visitas.estado', [$previsitas->id]) . '"><strong>Entrada</strong></a>';
})->rawColumns(['estado'])
被添加到 DOM 中