【问题标题】:Animation Complete Dialog动画完成对话框
【发布时间】:2013-02-07 00:23:43
【问题描述】:

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

注意:我为 UI javascript 使用了 MS CDN,因为 jsfiddle 还没有它。

【问题讨论】:

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


    【解决方案1】:

    这是一段漫长的旅程,但我终于弄清楚了您的问题和解决方案。

    确实,这个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.1 中的focus 选项进行设置。 I have confirmed that this works.

    我仍然认为这对其他人来说会有点不稳定,但至少对你来说不是。您可以选择现在升级到 jQuery 1.10.1,也可以等到 1.9 出来。

    【讨论】:

    • 感谢您对此进行研究!看起来焦点终于在做我期望它做的事情,等待动画完成后再被解雇。我只会使用 1.9 直到 1.10.1 稳定。
    【解决方案2】:

    正如@brian 所指出的,complete 回调功能在 v1.10.0 上已被删除,此后再也没有添加回来。 Brian 的方法很简洁,但仅适用于 open

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-01
      • 2014-04-24
      • 2021-01-03
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多