2012-12-19 46 views
5

我有幾個對話框,像這樣檢測jQuery的

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

打開的問題是,我有數百個這樣的對話框。我不想手動爲每個人創建一個open:屬性。有沒有什麼辦法可以監視一個對話框打開,如

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

你試過設置'class'的對話框,並在'class' –

+1

你想使用一個類的屬性,而不是一個id屬性複選框bacsed。 –

+0

假設

確實有類如
,我該如何檢查它是否打開? – user974896

回答

8

從jQuery的API整個文檔:

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

所以,你可以做你可能說的話:

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

精美的作品。非常感謝! – user974896

0

如果您的對話框始終創建以同樣的方式,爲什麼不使用簡單的工廠方法是這樣的:

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