【问题标题】:Detect when any dialog opens jQuery检测任何对话框何时打开jQuery
【发布时间】:2012-12-19 16:22:49
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您是否尝试过为对话框设置class 并检查class
  • 您希望使用类属性而不是 id 属性。
  • 假设
    确实有一个类,例如
    ,我该如何检查是否开了吗?

标签: javascript ajax jquery dialog


【解决方案1】:

来自 jQuery API:

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

所以你可以按你说的做:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多