数据表和模态

Datatables and Modals

本文关键字:模态 数据表      更新时间:2023-09-26

我有一个数据表设置(http://datatables.net/),我正在尝试有一个选项从表中删除一行,并有一个jQuery对话框模式弹出窗口来确认。但是,模态在表的第一页上工作正常,但是当表转到第 2 页时,模态停止工作。我的猜测是,当表分页到接下来的 10 个条目时,会发生一些删除对话框单击调用的事情。

这是我的模态代码:

    $('#delete-dialog').dialog({
        autoOpen: false, 
        width: 400,
        modal: true
    });
    $('.delete_modal').click(function (e) {
        e.preventDefault();
        var targetUrl = $(this).attr("href");
        $('#delete-dialog').dialog({
          buttons: {
            "Delete": function() {
              window.location.href = targetUrl;
            },
            "Cancel": function() {
              $(this).dialog("close");
            }
          }
        });
        $('#delete-dialog').dialog("open");
    });

这是我的模态代码:

<div id="delete-dialog" title="Remove User">
    <p>Are you sure you want to delete this user?</p>
</div>

知道为什么它在表格的第一页上有效,而不是在第二页上有效吗?

这是我的删除代码:

<li><a href="?page=users&sub=admins&action=delete&id=<?=$row['id']?>" class="delete_modal"><span class="icos-trash"></span>Delete</a></li>

我的猜测是你正在加载尚未与jquery绑定的新元素。 您可以像这样绑定新元素或将处理程序附加到类.delete_modal。

$("body").on("click", ".delete_modal", function (e) {
e.preventDefault();
        var targetUrl = $(this).attr("href");
        $('#delete-dialog').dialog({
          buttons: {
            "Delete": function() {
              window.location.href = targetUrl;
            },
            "Cancel": function() {
              $(this).dialog("close");
            }
          }
        });
        $('#delete-dialog').dialog("open");
});