检测任何对话框何时打开jQuery

时间:2012-12-19 16:22:50

标签: javascript ajax jquery dialog

我有几个像这样打开的对话框

 $("#dialog").load(URL);
 $("#dialog").dialog(
           attributes,
           here,
           close: function(e,u) {
                    cleanup
           }

问题是我有数百个这样的对话框。我不想手动为每个创建一个open:属性。有没有办法可以监视整个文档的对话框打开,如

 $(document).on("open","#dialog",function() {
     Do something
 })

2 个答案:

答案 0 :(得分:8)

来自jQuery API:

$( ".selector" ).on( "dialogopen", function( event, ui ) {} );

所以你可以做你说的话:

$("body").on("dialogopen",function(e,u){
    alert('dialog open!');
});

答案 1 :(得分:0)

如果您的对话框始终以相同的方式创建,为什么不使用这样的简单工厂方法:

var createUrlDialog = function(element, url, dialogOptions) {
    element.load(url);
    element.dialog($.extend({}, dialogOptions, {
        open: function(event, ui) {
            // do what you want
        }
    }));
}