2013-02-07 75 views
2

我遇到了UI對話框的問題。我迷上了完整的事件來創建一個TinyMCE,因爲它對動畫不太好。但它似乎沒有在最新版本的JQuery UI中工作。動畫完成對話框

我在發佈說明中搜索了一下,看看它是否已經改變或者什麼都沒有,但是我沒有在任何地方看到它。

這是已刪除/移動的功能,或者這是v1.10.0中的問題嗎?

下面是示例代碼,在以下的jsfiddle使用:

$("div").dialog({ 
    show:{ 
     effect:"puff", 
     duration:400, 
     complete:function() 
     { 
      $(".complete").html("Animation Complete."); 
     } 
    } 
}); 

先前版本功能(1.9.2):

http://jsfiddle.net/N4APL/1/

最新版本功能(1.10.0):

http://jsfiddle.net/jXDYz/1/

注意:因爲jsfiddle還沒有它,所以我使用MS CDN作爲UI javascript。

+0

很好的問題! –

回答

4

這是一段相當的旅程,但我終於想出了你的問題和解決方案。

確實這個complete功能已經從jQuery UI對話框1.10.0中刪除。 It's not in the API。我不確定它爲什麼被刪除,而且它們當然沒有在升級指南中記錄。

一些挖掘到1.10.0代碼後,我發現這一點:

this._show(this.uiDialog, this.options.show); 

正如你所看到的,有沒有回調._show(這僅僅是jQuery的.show),並沒有辦法設置回調無論是。確認!你被卡住了。

...或者你會是jQuery的1.10.1不上道:

this._show(this.uiDialog, this.options.show, function() { 
    that._focusTabbable(); 
    that._trigger("focus"); 
}); 

你仍然不能直接設置回調,但你可以通過在1.10 focus選項設置。 1。 I have confirmed that this works

我仍然認爲這對其他人來說會相當不穩定,但至少不適合你。您現在可以選擇升級到jQuery 1.10.1,或者直接使用1.9等待它。

+0

謝謝你研究這個!看起來焦點終於做了我期望的事情,等待動畫在被解僱之前完成。我將只使用1.9,直到1.10.1穩定。 – Brian