如何设置超时"返回false"?

时间:2015-09-17 14:40:36

标签: javascript jquery html

我有一个功能,我禁用了所有链接:

$("a").click(function() { 
    return false; 
});

但是我只想禁用它们一秒钟,然后再次启用它们。这可能吗?

2 个答案:

答案 0 :(得分:1)

是的,这可以通过使用jQuery和setTimeout来实现。有很多方法可以实现类似的结果,但我制作了一个示例,它添加了类,以便在您希望的情况下对元素进行细粒度定位。您还可以获得免费路由的额外好处,例如,如果您愿意,可以为您的已禁用链接设置样式(我在示例中这样做了)。请注意以下内容......

<a href="#">link</a>
<a href="#">link</a>
<button>disable</button>
$(function() {
    $('button').click(function() {
        $('a').addClass('disabled')

        setTimeout(function() {
            $('.disabled').removeClass('disabled')
        }, 1000);
    })

    $('body').delegate('.disabled', 'click', function() { 
        console.log('disabled')
        return false; 
    });
});

JSFiddle Link - 演示

答案 1 :(得分:0)

假设您希望在点击事件发生后一秒钟进行重定向,您可以阻止Click事件导致的默认重定向,然后使用window.location

稍后执行相同的重定向
$("a").click(function () {
    var url = this.href;
    setTimeout(function () {
        window.location = url;
    }, 1000)
    return false;
});

请注意,预期的行为不是很清楚