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 に答える