Jquery 删除确认窗口 对 不 var-wnd; $(文档).ready(函数(){ wnd=$(“#modalWindow”).kendoWindow({ 标题:“删除确认”, 莫代尔:是的, 可见:假, 可调整大小:false, 宽度:300 }).数据(“kendoWindow”); }); 功能删除项(e){ e、 预防默认值(); var grid=此; var行=$(e.currentTarget).closest(“tr”); wnd.center().open(); $(“#是”)。单击(函数(){ 网格。移除(世界其他地区); wnd.close(); }); $(“#否”)。单击(函数(){ wnd.close(); }); }
你好, 我使用的是一个带有自定义按钮列的Telerik网格,它打开一个窗口确认删除相关行。 当我单击一行的按钮并确认删除时,它工作正常。 当我单击一行的按钮时,取消删除,然后单击另一行的另一个按钮并提交删除它删除网格中的每一行 我能做些什么来解决这个问题Jquery 删除确认窗口 对 不 var-wnd; $(文档).ready(函数(){ wnd=$(“#modalWindow”).kendoWindow({ 标题:“删除确认”, 莫代尔:是的, 可见:假, 可调整大小:false, 宽度:300 }).数据(“kendoWindow”); }); 功能删除项(e){ e、 预防默认值(); var grid=此; var行=$(e.currentTarget).closest(“tr”); wnd.center().open(); $(“#是”)。单击(函数(){ 网格。移除(世界其他地区); wnd.close(); }); $(“#否”)。单击(函数(){ wnd.close(); }); },jquery,asp.net-mvc,asp.net-mvc-4,telerik,Jquery,Asp.net Mvc,Asp.net Mvc 4,Telerik,你好, 我使用的是一个带有自定义按钮列的Telerik网格,它打开一个窗口确认删除相关行。 当我单击一行的按钮并确认删除时,它工作正常。 当我单击一行的按钮时,取消删除,然后单击另一行的另一个按钮并提交删除它删除网格中的每一行 我能做些什么来解决这个问题 关于每次调用DeleteItem函数时,您都在为#yes按钮设置处理程序以删除特定行。即使取消并选择其他行,处理程序也已设置,并将在以后单击按钮时运行 为了避免这种情况,您应该在设置新的事件处理程序之前清除以前设置的click事件处理程序: &
关于每次调用
DeleteItem
函数时,您都在为#yes
按钮设置处理程序以删除特定行。即使取消并选择其他行,处理程序也已设置,并将在以后单击按钮时运行
为了避免这种情况,您应该在设置新的事件处理程序之前清除以前设置的click事件处理程序:
<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>
尝试在
wnd.close()之后返回false
,在no
中单击!!提供js小提琴?每次打开窗口时,您都在重新绑定单击事件。实际上,它不是重新绑定,而是添加相同的事件处理程序。这意味着在第二次单击事件时,您将调用句柄两次,第三次调用句柄三次,依此类推。
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();
});
}