有没有一种方法可以连接到jQuery UI对话框上的关闭(x)按钮,以便您可以提供专用的事件处理程序?使用“close”或“beforeclose”事件不起作用,因为如果在对话框中还有其他按钮也会导致对话框关闭,那么您总是要打“close”和“beforeclose”事件,这是不可取的。我想要一种方法来运行close(x)按钮中的特定代码。jQuery UI对话框中关闭(x)按钮的专用事件处理程序
5
A
回答
3
你可以尝试:
$(document).on('click','.ui-dialog-titlebar-close',function(){
//close button clicked
});
1
据我知道有没有办法直接连线到该按钮,但你可以通过添加dialogClass和接线自己的事件处理程序做具体到您的弹出式的东西:
var dialogClass ="yourPopupTitle";
$(document).on('click', '.'+ dialogClass +' .ui-dialog-titlebar-close', function() {
handleEvent();
});
9
每当一个事件导致一个jQuery UI控件内的另一个事件,始终包含在事件Ø原始事件bject。在这种情况下,您可以查看传递给close
回调或dialogclose
事件的事件对象,并检查event.originalEvent
是否存在。如果是这样,那么你可以假设对话框是通过点击关闭按钮关闭的。这也适用于beforeclose
。
如果您想确保它是标题栏中的关闭按钮,那么您可以检查event.originalEvent.target
并使用.closest()
检查课程或DOM位置。
这里显示了动作中的一个jsbin:http://jsbin.com/ajoheWAB/1/edit
0
我相信这是你正在寻找的解决方案 - 您需要解除绑定click事件和自定义处理程序重新绑定到它。
虽然这个线程很旧,但我仍然在这里添加我的解决方案,希望能够让那些搜索它的人受益。
var fnCustomerHandler = function() {
alert("Here is your custom handler...");
};
$("#dialog").dialog({
open: function(event, ui) {
var el = $(this).closest('.ui-dialog').find('.ui-dialog-titlebar-close');
el.off();
el.on("click", fnCustomerHandler);
}
}
);
小提琴链接:
相关问题
- 1. jquery ui对话框 - 按钮点击事件处理程序
- 2. 防止在按钮的单击事件处理程序中关闭对话框
- 3. 我如何添加一个处理程序jquery UI对话框关闭事件
- 4. Jquery UI对话框 - 自定义关闭按钮(X)
- 5. jQuery UI对话框和IFRAME - 带'on'事件处理程序
- 6. jQuery对话框:备用关闭按钮
- 7. jQuery UI对话框不关闭内部应用程序关闭
- 8. 在关闭jQuery UI对话框之前延迟关闭事件
- 9. jquery-ui关闭对话框
- 10. Jquery UI对话框关闭按钮不起作用
- 11. jQuery UI对话框关闭按钮不起作用
- 12. 根据按钮关闭jQuery UI对话框的不同动画?
- 13. 位置关闭图像按钮以外的jQuery UI对话框
- 14. 关闭Iframe中的jQuery UI对话框
- 15. Ui引导程序对话框关闭
- 16. 默认关闭模式对话框关闭x按钮
- 17. jquery ui对话框关闭按钮方向
- 18. 使浏览器返回按钮关闭jQuery UI对话框
- 19. jQuery UI的对话框关闭按钮并不与当地的jQuery文件
- 20. 如何检测单击jQuery UI对话框的(X)关闭按钮,与dialogclose/dialogbeforeclose事件分开?
- 21. JQuery模式对话框关闭事件
- 22. JQuery对话框关闭事件
- 23. Jquery对话框关闭按钮不关闭;对话框只能打开一次
- 24. 关闭屏幕的JQuery UI对话框
- 25. jQuery UI的对话框不会关闭
- 26. jQuery UI的对话框不会关闭
- 27. 无法关闭jQuery UI的对话框
- 28. 关闭jQuery UI的对话框
- 29. 禁用/删除ajax对话框的关闭(X)按钮
- 30. jQuery UI对话框 - 暂停关闭事件