如何强制js代码以书面顺序执行?

时间:2012-12-12 11:12:09

标签: jquery show slidetoggle

$("#btnGall").click(function() {
    $('#gall').slideToggle('slow');
    $("#gInfo").show();
});

为什么这段代码首先执行第二行,然后是第一行。
我不想在slideToggle结束之前显示#gInfo

3 个答案:

答案 0 :(得分:2)

那是因为动画是异步的,脚本不会等待它们完成(感谢上帝)。这个特定用途的内置回调被添加到大多数执行动画的jQuery函数中:

$("#btnGall").click(function() {
    $('#gall').slideToggle('slow', function() {
        $("#gInfo").show();
    });
});

答案 1 :(得分:2)

幻灯片切换允许在操作完成后回叫

$("#btnGall").click(function() {
    $('#gall').slideToggle('slow', function () {    $("#gInfo").show();});

});

答案 2 :(得分:2)

从指定为传递给slidetoggle函数的成功回调的匿名函数调用该函数。

$("#btnGall").click(function() {
    $('#gall').slideToggle('slow', function(){
        $("#gInfo").show();
    });
});

SlideToggle Documentation

工作示例:http://jsfiddle.net/2zn6G/