5

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

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

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

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

2 回答 2

8

来自 jQuery API:

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

所以你可以做你说的可能:

$("body").on("dialogopen",function(e,u){
    alert('dialog open!');
});
于 2012-12-19T16:25:53.957 回答
0

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

var createUrlDialog = function(element, url, dialogOptions) {
    element.load(url);
    element.dialog($.extend({}, dialogOptions, {
        open: function(event, ui) {
            // do what you want
        }
    }));
}
于 2012-12-19T16:35:51.500 回答