2013-02-07 77 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