jQuery UI对话框中关闭(x)按钮的专用事件处理程序

Bri*_*man 6 javascript jquery jquery-ui jquery-ui-dialog

有没有办法连接到jQuery UI对话框上的close(x)按钮,这样你就可以提供专用的事件处理程序?使用"close"或"beforeclose"事件不起作用,因为如果对话框中还有其他按钮也会导致对话框关闭,那么您总是会遇到"关闭"和"关闭前"事件,这是不可取的.我想要一种从close(x)按钮运行特定代码的方法.

Sco*_*lez 9

每当一个事件导致jQuery UI小部件中的另一个事件时,原始事件总是包含在事件对象中.在这种情况下,您可以查看传递给close回调或dialogclose事件的事件对象,并检查是否event.originalEvent存在.如果是,那么您可以假设通过单击关闭按钮关闭对话框.这也适用于beforeclose.

如果您想完全确定它是标题栏中的关闭按钮,那么您可以检查event.originalEvent.target并使用检查类或DOM位置.closest().

这里有一个jsbin显示了这个:http://jsbin.com/ajoheWAB/1/edit


A. *_*lff 3

你可以尝试:

$(document).on('click','.ui-dialog-titlebar-close',function(){
    //close button clicked
});
Run Code Online (Sandbox Code Playgroud)