【问题标题】:jQuery callback not firing when declaring complete:?声明完成时没有触发jQuery回调:?
【发布时间】:2016-02-06 18:30:01
【问题描述】:

我有一个动画,通过将不透明度缩小到 0 来从屏幕上删除内容。然后我想将可见性的 css 属性设置为隐藏。为了使顺序正确,我一直在尝试使用警报框来了解事件何时触发。不显示警告框。这是我的代码:

                $('.save-hidden').animate({
                    opacity: 0, 
                    complete: function() { alert('Executes now.');}
                }, 2000);

我的语法对于调用该函数是否正确?正如我所说,警报永远不会显示。

我打算用以下调用替换它:

                $('.save-hidden').css({ visibility: "visible"});

谢谢!

【问题讨论】:

    标签: javascript jquery callback jquery-animate jquery-callback


    【解决方案1】:

    jQuery 的animate() 支持两种不同类型的语法,第一种是

    .animate( properties [, duration ] [, easing ] [, complete ] )
    

    你会以这种方式使用它

    $('.save-hidden').animate({opacity: 0}, 2000, function() { 
        alert('Executes now.');}
    });
    

    第二种语法,看起来像您尝试使用的语法,是

    .animate( properties, options )
    

    在这里您可以使用两个对象,第一个包含动画属性,第二个包含选项,例如 complete() 等。

    换句话说,complete 回调不属于具有动画属性的对象,但可以添加另一个对象作为第二个参数,包含durationcompletequeue 等属性.
    请注意,此语法将在选项对象中包含所有回调、缓动等,并且只接受两个参数。

    $('.save-hidden').animate({
        opacity: 0
    }, {
        complete: function() { 
            alert('Executes now.');
        },
        duration : 2000
    });
    

    【讨论】:

    • 使用您的语法,警报似乎有效,但 css 中的设置无效。有什么我必须改变才能完成这项工作吗?更新代码: $('.save-hidden').animate( {opacity: 0}, { complete: { function() {$('.save-hidden').css({ visibility: "hidden"}); } }, 持续时间: 2000 } );
    • 我明白了,我没有按照你上面定义的结构。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多