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

为什么此代码首先执行第二行,然后执行第一行。
我不想#gInfo在 slideToggle 完成之前显示。

4

3 回答 3

2

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

$("#btnGall").click(function() {
    $('#gall').slideToggle('slow', function() {
        $("#gInfo").show();
    });
});
于 2012-12-12T11:13:20.957 回答
2

滑动切换允许在操作完成后进行回调

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

});
于 2012-12-12T11:13:41.527 回答
2

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

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

SlideToggle 文档

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

于 2012-12-12T11:13:50.893 回答