点击某些链接后,我需要延迟一点点重定向到新页面。
现在我正在使用以下jQuery:
$('.menu-element a').click(function(){
var src = $(this).attr('href');
$(this).removeAttr('href');
anim(src);
})
它工作正常。它运行非常短的动画,然后重定向到点击的页面。
但是我想保留链接的href
属性(例如,如果有人非常快地点击两次)。
当我在上面列出的代码末尾添加$(this).attr('href', src);
时,它不会等到动画完成后才会在点击链接后立即重定向到新页面。
如何保留href
属性并避免将页面重定向到新地址?
答案 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();
})