jQuery preventDefault停止其余代码工作

时间:2010-04-24 20:05:29

标签: jquery default

我有这个代码,我使用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 个答案:

答案 0 :(得分:2)

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

$("a").click(function(event){
    event.preventDefault();

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

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

答案 1 :(得分:0)

尝试使用animate函数的回调函数参数,在动画完成后实现导航(从臀部开始):

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

});