延迟链接点击
这是我正在使用的小提琴: 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秒的超时,之后页面将重定向到url
的href
属性中找到的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; });