我有几个像这样打开的对话框
$("#dialog").load(URL);
$("#dialog").dialog(
attributes,
here,
close: function(e,u) {
cleanup
}
问题是我有数百个这样的对话框。我不想手动为每个创建一个open:属性。有没有办法可以监视整个文档的对话框打开,如
$(document).on("open","#dialog",function() {
Do something
})
答案 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
}
}));
}