Jquery UI 对话框关闭事件所有可能的方式合二为一

Posted

技术标签:

【中文标题】Jquery UI 对话框关闭事件所有可能的方式合二为一【英文标题】:Jquery UI Dialog box close event all possible way into one 【发布时间】:2018-03-09 18:27:06 【问题描述】:

jquery中对话框的关闭事件(使用关闭按钮)可以通过

close: function(e, ui) 
        // do your thing...

我也试过closeOnEscape: false,,但这个选项对我来说失败了。我不知道为什么(我在一个上下文中有 2 个对话框),因为一个对话框在转义时没有关闭,另一个对话框关闭。然后还有另一种方法可以使用 X 按钮关闭对话框。

我想知道是否有一个事件可以同时处理关闭 jQuery UI 对话框的所有方式?

更新

我不是在寻找一种方法来关闭触发一起事件的对话框。我想知道将触发关闭的事件,以便我可以在关闭对话框时执行功能

【问题讨论】:

【参考方案1】:

你可以写:

$('.selector').dialog('close');

例如:(假设对话框的 id 是 'my-dialog')

$("#my-dialog").dialog("close");

如果你想关闭你打开的同一个对话框,你可以使用这个

$(this).dialog('close'); 

【讨论】:

写我不明白这种答案,你能详细说明一下 我不是在寻找关闭方法,因为我在 OP 中提供了 3 种关闭方法我想知道将触发关闭的事件,以便我可以在关闭对话框时执行功能 假设你在十字图标上有锚标签,你也可以触发点击事件。否则在 Close() 方法上你可以写相同的 如果您有一个单独的按钮来关闭对话框,请在方法中写入这一行,并在触发按钮后调用该方法。有很多选择:)【参考方案2】:

查看 JQuery 官方网站,在这里您将获得所有信息:您可以通过 *** 上的 Answers(已经问过)获得很多相同类型的问题! https://api.jqueryui.com/dialog/#method-close

来自 JQuery 网站的代码示例: 使用指定的关闭回调初始化对话框:

$( ".selector" ).dialog(
  close: function( event, ui ) 
);

【讨论】:

【参考方案3】:

参考:Close event

$('.dialog').dialog(
close: function(e, ui) 
    // do your thing...
 
);

一次关闭所有对话框试试

$(".ui-dialog-content").dialog("close");

因为所有对话框都继承自类.ui-dialog-content

即使对话框没有打开它也会被触发所以尝试在对话框关闭方法中使用它(上图)

【讨论】:

以上是关于Jquery UI 对话框关闭事件所有可能的方式合二为一的主要内容,如果未能解决你的问题,请参考以下文章

jquery-ui-dialog - 如何挂钩到对话框关闭事件

神秘的鼠标事件关闭 jQuery UI 对话框

如何使 jquery-ui-dialog 没有关闭按钮?

如何在打开新对话框之前关闭所有 jquery ui 对话框?

“jquery dialog”对话框的关闭事件都有哪些?

“jquery dialog”对话框的关闭事件都有哪些?