<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,该列打开一个窗口以确认删除相关行。 当我单击一行的按钮,我确认删除它正常工作。 当我单击一行按钮时,取消删除,然后单击另一行的另一个按钮并提交删除它删除网格的每一行。
我该怎么做才能解决这个问题?
问候
答案 0 :(得分:0)
每次调用DeleteItem
函数时,您都会设置#yes
按钮的处理程序来删除特定行。即使您取消并选择了另一行,处理程序也已设置,并且将在以后单击该按钮时运行。
为避免这种情况,您应该先设置之前设置的点击事件处理程序,然后再设置新事件:
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();
});
}