延迟链接点击

这是我正在使用的小提琴: http : //jsfiddle.net/Scd9b/

点击后如何延迟hreffunction?

例如,用户单击链接,消息向下滑动一会儿……在2秒后,用户继续到其链接的页面。

对不起,每个人都忘了提到有些锚没有链接。

您可以通过设置window.location模拟导航到页面。 因此我们将使用preventDefault阻止链接的正常function,然后在setTimeout ,我们将设置正确的window.location:

https://codepen.io/anon/pen/PePLbv

 $("a.question[href]").click(function(e){ e.preventDefault(); if (this.href) { var target = this.href; setTimeout(function(){ window.location = target; }, 2000); } }); 

检查这个小提琴: http : //jsfiddle.net/C87wM/1/

像这样修改你的切换:

 $("a.question[href]").click(function(){ var self = $(this); self.toggleClass("active").next().slideToggle(2000, function() { window.location.href = self.attr('href'); // go to href after the slide animation completes }); return false; // And also make sure you return false from your click handler. }); 

取消单击并使用setTimeout更改位置。

 $(document).ready(function(){ $("span.answer").hide(); $("a.question").click(function(e){ $(this).toggleClass("active").next().slideToggle("slow"); e.preventDefault(); var loc = this.href; if(loc){ window.setTimeout( function(){ window.location.href=loc; }, 2000 ); } }); }); 
 $(document).ready(function(){ $("span.answer").hide(); $("a.question").click(function(e){ e.preventDefault(); $(this).toggleClass("active").next().slideToggle("slow"); var Link = $(this).attr("href"); setTimeout(function() { window.location.href = Link; },2000); }); }); 

首先,防止链接的默认操作。 然后添加2秒的超时,之后页面将重定向到urlhref属性中找到的url

 $("a.question").click(function(e){ e.preventDefault(); $(this).toggleClass("active").next().slideToggle("slow"); setTimeout(function(){ location.href = $(this).prop("href"); }, 2000); }); 

例子 。

你的点击处理程序中的e.preventDefault怎么样? 然后做一个带你到达目的地的setTimeout?

 $("a.question").click(function(e){ e.preventDefault(); $(this).toggleClass("active").next().slideToggle("slow"); setTimeout('window.location.href=' + $(this).attr(href), 2000); }); 

这应该这样做:

 $("a[href]").click(function () { var url = this.href; setTimeout(function () { location.href = url; }, 2000); return false; });