在Laravel Datatable中调用id

时间:2018-01-17 16:31:58

标签: php jquery laravel

我在Laravel中使用Laravel Datatable创建一个带过滤器的数据表。我也需要一个自定义列,所以我添加了这段代码:

 ->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'])

此代码完美无缺。我也需要调用此列来提示sweetalert的消息。我用这个......

$('#delete').click(function () {
    swal('Test');
});

当我在列中单击时没有任何反应,但是当我在刀片中直接创建带有id ='delete'的元素时。

所以错误很简单:我无法在datatable列中调用带有id的元素,但是如果直接在刀片中使用,我可以调用该元素。为什么会出现这种错误?

2 个答案:

答案 0 :(得分:1)

我认为你需要为此使用jQuery事件委托。目前,调用$("#delete").click(...)将一个click事件分配给DOM元素$("#delete"),该元素在分配时不存在。如果您将click事件分配给目标为"body"的{​​{1}},则此功能适用于您:

"#delete"

答案 1 :(得分:0)

此代码

$('#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