【问题标题】:How to force js code to execute in the written order?如何强制js代码按书面顺序执行?
【发布时间】:2012-12-12 11:12:09
【问题描述】:
$("#btnGall").click(function() {
    $('#gall').slideToggle('slow');
    $("#gInfo").show();
});

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

【问题讨论】:

    标签: jquery show slidetoggle


    【解决方案1】:

    从指定为传递给滑动切换函数的成功回调的匿名函数调用该函数。

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

    SlideToggle Documentation

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

    【讨论】:

    • @Alegro,很高兴我能帮上忙。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-07-30
        • 1970-01-01
        • 2017-09-06
        • 1970-01-01
        • 2021-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        相关资源
        最近更新 更多