删除确认 Window

Delete Confirmation Window

<div id="modalWindow">
    <button id="yes" class="k-button">Yes</button>
    <button id="no" class="k-button">No</button>
</div>
<script>
var wnd;
$(document).ready(function() {
    wnd = $("#modalWindow").kendoWindow({
        title: "Delete confirmation",
        modal: true,
        visible: false,
        resizable: false,
        width: 300
    }).data("kendoWindow");

});

function DeleteItem(e) {
    e.preventDefault();

    var grid = this;
    var row = $(e.currentTarget).closest("tr");
    wnd.center().open();

    $("#yes").click(function() {
        grid.removeRow(row);
        wnd.close();
    });

    $("#no").click(function() {
        wnd.close();
    });
}
</script>

您好,

我正在使用带有自定义按钮列的 Telerik Grid,该按钮列打开 window 以确认删除相关行。 当我单击一行的按钮并确认删除时,它可以正常工作。 当我点击某一行的按钮时,取消删除,然后点击另一行的另一个按钮并提交删除它删除网格的每一行。

我该怎么做才能解决这个问题?

此致

每次调用 DeleteItem 函数时,您都在为 #yes 按钮设置处理程序以删除特定行。即使您取消并 select 不同的行,处理程序已经设置,并且将 运行 在以后单击按钮时。

为避免这种情况,您应该在设置新的之前清除之前设置的点击事件处理程序:

function DeleteItem(e) {
    e.preventDefault();

    var grid = this;
    var row = $(e.currentTarget).closest("tr");
    wnd.center().open();

    $("#yes").unbind('click').click(function () {
        grid.removeRow(row);
        wnd.close();
    });

    $("#no").unbind('click').click(function () {
        wnd.close();
    });
}