如何在不删除“href”属性的情况下避免单击链接

时间:2011-04-11 12:49:06

标签: jquery html javascript-events

点击某些链接后,我需要延迟一点点重定向到新页面。

现在我正在使用以下jQuery:

$('.menu-element a').click(function(){
    var src = $(this).attr('href');
    $(this).removeAttr('href');             
    anim(src);
})

它工作正常。它运行非常短的动画,然后重定向到点击的页面。

但是我想保留链接的href属性(例如,如果有人非常快地点击两次)。

当我在上面列出的代码末尾添加$(this).attr('href', src);时,它不会等到动画完成后才会在点击链接后立即重定向到新页面。

如何保留href属性并避免将页面重定向到新地址?

2 个答案:

答案 0 :(得分:6)

return false添加到您的函数中。这可以防止浏览器跟踪链接的href,然后由您决定是否在javascript中进行重定向。例如通过在anim()函数的末尾添加一些内容来更新位置。

这也意味着您无需从链接中删除href。

$('.menu-element a').click(function(){
    var src = $(this).attr('href');
    anim(src);
    return false;
})

答案 1 :(得分:4)

您可以使用event.preventDefault()return false也会有效,但它会also stop event bubbling(大部分时间都不是问题,你应该注意它)。

$('.menu-element a').click(function(event){
    anim($(this).attr('href'));
    event.preventDefault();
})