剑道对话框弹出打开多次与多点击



In my grid.js

template: "<div>#if(data.c> 0){#<a class='undo' onClick='showDiv(#:id#)'>#:c# test</a>#} else{#N/A#}#</div>",

首先,我有像上面那样的绑定数据。

在我的showDiv函数

$.ajax({
type: 'GET',
url: ",
dataType: 'json',
success: function (data) { 
$(document).ready(function () {
var dialog = $('#dialog'),
undo = $('.undo');
console.log("first");
undo.click(function () {
console.log("second");
dialog.data("kendoDialog").open();
undo.fadeOut();
});
function onClose() {                  
undo.fadeIn();
}
dialog.kendoDialog({
width: "450px",
title: "Site Name",
closable: false,
modal: false,
content: data,
actions: [                     
{ text: 'close'}
],
close: onClose
});
});
}
});

作为我第一次和第二次记录的日志,每次单击第一次控制台日志一次,但每次单击增加第二次日志。假设我点击了2次,那么控制台日志为2次。

因为这个我需要关闭2次。

看到2:-如果我点击第2行,一次和第3行一次,然后第三次尝试与第2行点击,需要关闭2时间和数据从第2行填充第一次关闭和第3行第二次关闭。

这里的问题是什么?你知道吗?

每次执行showDiv函数时,您都在为.undo单击事件添加新的处理程序。解决这个问题最简单的方法是修改

undo.click(function () {

一个
undo.one('click', function () {

添加的处理程序在绑定后只执行一次。

最新更新