代码之家  ›  专栏  ›  技术社区  ›  Tim

jquery preventdefault停止其余代码的工作

  •  1
  • Tim  · 技术社区  · 16 年前

    我使用jquery导航到下一页的代码,因为我希望在这之前产生一些效果。问题是,prevent.default()之后的所有内容似乎都不起作用!

    $("a").click(function(event){
        event.preventDefault();
        $(".content-center").animate({height: "0px"}, 500);
        navigate($(this).attr('href'));
    });
    

    我需要事情按这个顺序发生,这样动画就会发生,一旦完成-加载下一页…

    有人有什么想法吗?多谢了吗?

    提姆


    更新的代码(移动到新页面,但不出现动画)---

    $("a").click(function(event){
        event.preventDefault();
    
        var driver = $(this).attr('href');
        $(".content-center").animate({
            height: "0px"
        }, 500, function(){
            navigate(driver);
        });
    });
    

    看见 here

    非常感谢你的帮助!!

    2 回复  |  直到 14 年前
        1
  •  2
  •   kim3er    16 年前

    您需要将导航方法调用放入动画回调中。

    $("a").click(function(event){
        event.preventDefault();
    
        var $a = $(this);
        $(".content-center").animate({
            height: "0px"
        }, 500, function(){
            navigate($a.attr('href'));
        });
    });
    

    如果不这样做,动画和导航将同时发生。

    丰富的

        2
  •  0
  •   BradBrening    16 年前

    动画完成后,尝试使用animate函数的callback函数参数(从hip)实现导航:

    $("a").click(function() { 
      var driver = this;
      $(".content-center").animate({height: "0px"}, 
                                   500,
                                   function() { navigate($(driver).attr('href')); }
                                  ); 
    
    });