以下是与我合作的小提琴:http://jsfiddle.net/Scd9b/
点击后如何延迟href功能?
例如,用户点击该链接,该消息将向下滑动一会儿...... ,并在2秒后,用户继续浏览其链接的页面。
对不起,每个人都忘记提到有一些没有链接的锚点。
答案 0 :(得分:6)
检查这个小提琴: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.
});
答案 1 :(得分:4)
您可以通过设置window.location模拟导航到页面。因此,我们将使用preventDefault
阻止链接的正常功能,然后在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);
}
});
答案 2 :(得分:1)
取消点击并使用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 );
}
});
});
答案 3 :(得分:1)
$(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);
});
});
答案 4 :(得分:0)
首先防止链接的默认操作。然后添加2秒的超时,之后页面将重定向到链接的url
属性中的href
。
$("a.question").click(function(e){
e.preventDefault();
$(this).toggleClass("active").next().slideToggle("slow");
setTimeout(function(){
location.href = $(this).prop("href");
}, 2000);
});
答案 5 :(得分:0)
点击处理程序中的e.preventDefault怎么样?然后做一个带你到目的地的setTimeout?
$("a.question").click(function(e){
e.preventDefault();
$(this).toggleClass("active").next().slideToggle("slow");
setTimeout('window.location.href=' + $(this).attr(href), 2000);
});
答案 6 :(得分:0)
这应该这样做:
$("a[href]").click(function () {
var url = this.href;
setTimeout(function () {
location.href = url;
}, 2000);
return false;
});
答案 7 :(得分:0)
设置窗口位置对我来说不是一个好主意,所以这就是我要做的
点击时,它会检查用户是否单击了链接(如果是),它会等待2秒钟,然后再次触发点击,因为它不是用户触发的,所以这次不会等待
document.getElementById("question").addEventListener("click", function(e) {
//if user clicked prevent default and trigger after 2 seconds
if(e.isTrusted) {
e.preventDefault();
//after 2 seconds click it and it'll not wait since it's not user triggered
setTimeout(function() {
e.target.click();
}, 2000);
}
});
<a href="http://www.bing.com" id="question">Bing</a>