在 Laravel 数据表中调用 id



我在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 中

最新更新