Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 在动画开始之前执行jQuery UI动画回调_Jquery Ui_Animation_Backbone.js_Callback - Fatal编程技术网

Jquery ui 在动画开始之前执行jQuery UI动画回调

Jquery ui 在动画开始之前执行jQuery UI动画回调,jquery-ui,animation,backbone.js,callback,Jquery Ui,Animation,Backbone.js,Callback,我正在尝试在主干视图的渲染操作期间使用一些动画,该操作在我将基础模型的数据刷新到新记录时调用 SiteView = Backbone.View.extend({ initialize: function () { this.model.bind('change', this.render, this); }, render: function () { if (this.model.get('name')) {

我正在尝试在主干视图的渲染操作期间使用一些动画,该操作在我将基础模型的数据刷新到新记录时调用

SiteView = Backbone.View.extend({

    initialize: function () {
        this.model.bind('change', this.render, this);
    },

    render: function () {
        if (this.model.get('name')) {
            var callback = function (view) {
                view.$("#activesite_name").empty().append(view.model.get('name'));
                view.$("#activesite_desc").empty().append(view.model.get('description'));
                $(view.el).show('drop', { direction: 'down' }, 'slow').removeClass('hidden');
            };

            $(this.el).filter(':visible').fadeOut(500, callback(this));
        }
    }
});
但是,jQuery UI回调函数在执行show操作之前执行,导致UI更新,然后在从一个模型选择刷新到另一个模型选择时消失

如何使回调函数仅在元素正确隐藏后调用?

尝试以下方法:

render: function () {
    if (this.model.get('name')) {
        var view = this;
        var callback = function () {
            view.$("#activesite_name").empty().append(view.model.get('name'));
            view.$("#activesite_desc").empty().append(view.model.get('description'));
            view.$el.show('drop', { direction: 'down' }, 'slow').removeClass('hidden');
        };

        $(this.el).filter(':visible').fadeOut(500, callback);
    }
}

运气不好,根本没有执行回调。啊,是的,jQuery覆盖了
fadeOut
callback的上下文。。。固定答案。谢谢!:)这个立即调用和指向以后调用的指针总是得到我的支持。它首先被执行,因为
callback(this)
是一个函数调用,它发生在
fadeOut
参数被计算时。