2012-02-29 25 views
3

我有這個功能打開jQuery UI的對話框jQuery UI的對話框是不是當重新調用它的功能

function pop_up(div, titulo){ 
         $("#" + div).dialog({ 
          autoOpen: false, 
          show: "explode", 
          hide: "explode", 
          modal: true, 
          minHeight: 550, 
          height: 'auto', 
          width: 'auto', 
          title: titulo 

         }); 
      $("#" + div).dialog("open"); 
      return false; 

     } 

至極我把它在同一個隱藏的div:

pop_up('pop', 'my title'); 

至極的作品罰款(我可以打開和關閉儘可能多的次數)但如果我在#div中加載了一些內容dinamically我得到這個螢火蟲錯誤(在下一個aptent打開對話框)

$("#" + div).dialog is not a function 
[Parar en este error] 

title: titulo 

基本上

pop_up('pop', 'my title'); /* OK*/ 
$('#pop').load('somefile.html',function(){ 
    pop_up('pop', 'some title'); /* CRASH*/ 
}); 

將觸發錯誤;任何想法我做錯了什麼?

+0

也許這是一個計時問題,並且負載設法在創建對話框的函數調用之前完成。 – j08691 2012-02-29 20:25:53

+0

@ j08691但它有點奇怪,那麼錯誤不是函數。沒有? – 2012-02-29 21:38:36

+0

嗯,似乎工作在這個jsFiddle:http://jsfiddle.net/j08691/wt9UB/ – j08691 2012-02-29 21:55:23

回答

0

在你的例子中,你打電話pop_up(),ID爲div。我不確定這是不是一個好的id值,但是在下一行代碼中,您嘗試將'somefile.html'加載到#pop中,這可能還沒有創建。然後嘗試創建一個新的pop_up,它引用了正在加載的同一對象(#pop)。

會這樣嗎?

pop_up('div1', 'my title'); 
$('#div1').load('somefile.html',function(){ 
    pop_up('pop', 'some title'); 
}); 

下面我們用一個對話框,DIV1的ID。然後我們將'somefile.html'加載到該對話框中。一旦該負載完成,我們創建一個新的pop_up,稱爲pop

希望這會有所幫助!

+0

編輯我的問題,我需要它是相同的div ... – 2012-02-29 21:28:21

相關問題