【问题标题】:kendo dialog pop up opened multi time with multi click剑道对话框弹出多次单击多次打开
【发布时间】:2021-10-23 22:40:31
【问题描述】:

在我的 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 行,一次和第 3 行,然后第三次尝试单击第 2 行,需要关闭 2 次,并且从第 2 行填充的数据用于第一次关闭和第 3 行用于第二次关闭。

这里有什么问题。有什么想法吗?

【问题讨论】:

    标签: javascript jquery asp.net-mvc kendo-ui kendo-grid


    【解决方案1】:

    每次执行 showDiv 函数时,您都在向.undo click 事件添加新的处理程序。解决此问题的最简单方法是更改​​

    undo.click(function () {
    

    one

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多