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

Posted

技术标签:

【中文标题】剑道对话框弹出多次单击多次打开【英文标题】: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 行用于第二次关闭。

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

【问题讨论】:

【参考方案1】:

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

undo.click(function () 

到one

undo.one('click', function () 

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

【讨论】:

以上是关于剑道对话框弹出多次单击多次打开的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 打开文件对话框在 Chrome 和 IE 中多次打开

通过在 MVC4 中多次单击按钮打开弹出窗口的问题?

当包含文本字段、文本区域等时,Jquery 对话框会多次打开

C#中如何实现一个按钮多次单击的事件

@ViewScoped JSF bean 被多次初始化

检测 Windows 应用程序的多次启动