动画完整对话框

时间:2013-02-07 00:23:44

标签: jquery jquery-ui jquery-ui-dialog

我遇到了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/

注意:我使用MS CDN作为UI javascript,因为jsfiddle尚未拥有它。

2 个答案:

答案 0 :(得分:4)

这是一段相当艰难的旅程,但我终于找到了你的问题和解决方案。

确实已从jQuery UI对话框1.10.0中删除了此complete功能。 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.1中的focus选项进行设置。 I have confirmed that this works

我仍然认为这对其他人来说会有点不稳定,但至少不适合你。您可以选择立即升级到jQuery 1.10.1,也可以直接使用1.9等待它。

答案 1 :(得分:0)

正如@brian所说,complete回调功能已在v1.10.0中删除,并且从未添加过。 Brian的方法很简洁,但只适用于open

在此,我提出了一种更适用于openclose的正确方法:

https://stackoverflow.com/a/18257205/2678731

在(最新)v1.10.3上成功测试:http://jsfiddle.net/losnir/jcmpm/