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 () {
添加的处理程序在绑定后只执行一次。