2011-02-28 76 views
5

在我的網頁我有這樣一些環節:如何在打開jQueryUI對話框後執行函數?

<div id="toolbarButtons"> 
    <a href="actualites/addLink" id="liens" rel="lien" title="Insérer un lien" class="toolbarButton"><span><img src="pub/struct/picto/icon_toolbar-link.gif" alt="Liens" />Lien</span></a> 
    <a href="actualites/addImage" rel="image" title="Insérer une image" id="img" class="toolbarButton"><span><img src="pub/struct/picto/icon_toolbar-img.gif" alt="Liens" /> Image(s)</span></a> 
</div> 
<div id="dialogbox"></div> 

首先,我初始化我的對話框通過調用:

initDialog : function() { 
    $('#dialogbox').dialog({ 
     bgiframe:true, 
     autoOpen:false, 
     width:500, 
     modal:true 
    }); 
} 

然後我附上對話框上單擊事件:

$('.toolbarButton').click(function(e){ 
      e.preventDefault(); 
      actu.dialogManager($(this)); 
}); 

dialogManager : function(elem) { 

    elem.blur(); 
    var title = elem.attr('title'); 
    var href = elem.attr('href'); 
    var rel  = elem.attr('rel'); 

    $('#dialogbox').dialog('option','title',title); 

    if(rel == 'lien') 
    { 
     $('#dialogbox').dialog('option','buttons',{ 
      'Add' : function(){ 
          //TODO 
      }, 
      'Cancel' : function(){ 
       $('#linkText').val(''); 
       $('#linkUrl').val(''); 
       $(this).dialog('close'); 
      } 
     }); 

     $('#dialogbox').load(href).dialog('open'); 

    } 
} 

正如你所看到的,對話框的內容是通過ajax獲取的。該對話框包含一些輸入。 我有最後一個功能,它應該編輯輸入的內容,但我不知道如何以及在哪裏調用它。它需要在對話框打開後調用才能高效。我怎樣才能做到這一點 ?

做探微後

$('#dialogbox').load(href).dialog('open'); 

不會因爲異步加載的工作(該對話框之前稱爲滿載)。

感謝您的幫助。

回答

25

當對話框打開時,您可以做些什麼。

initDialog : function() { 
    $('#dialogbox').dialog({ 
     bgiframe:true, 
     autoOpen:false, 
     open: function() { 
      // do something on load 
     }, 
     width:500, 
     modal:true 
    }); 
} 
+0

感謝這對我工作... – Ziggler 2016-04-07 17:19:12

2

你能做這樣的事嗎?

$('#dialogbox').load(href, function() { 
    //your edit function? 
    $(this).dialog('open'); 
    }); 

該函數將在加載完成時調用。

+3

這不是一個答案。 – tishma 2014-10-30 13:35:13

+1

這實際上是正確的答案。問題的核心是他希望在執行函數之前等待加載完成,爲此,應使用加載回調,如下所示。 – 2016-04-13 21:48:46

相關問題