0

CSS リンクをクリックしてから 1 秒間無効にしようとしています。

これを試してみましたが成功しませんでした。

ヘッダー内:

<script type="text/javascript">
$(function() {
    $("#link").click(function() {
        $("#link").attr("disabled", "disabled");
        setTimeout(function() {
            $("#link").removeAttr("disabled");      
        }, 2000);
    });
});
</script>

HTML:

<a href="#" class="link">the link text</a>

CSS:

.link:diabled {
some values here.. }
4

4 に答える 4

3

'link'クラスであり、それをIDとして使用しています。$('.link')の代わりに行う$('#link')

于 2013-06-03T19:27:02.477 に答える
0

このアプローチの方がうまくいくと思います。もう 1 つは、リンクを複数回クリックして setTimeout をめちゃくちゃにすることです。これにより、イベントのバインドが解除され、setTimeout の後にイベントが再アタッチされます。例: リンクをダブルクリックします。

$(".link").click(linkBind);
function linkBind(){
    var $this = $(this);
        $this.addClass('disabled');
        $this.unbind('click');
        setTimeout(function() {
            $this.removeClass('disabled');
            $this.bind('click', linkBind);
        }, 2000);
}

$(document).on('click', '.disabled', function (e) {
    e.preventDefault();
});

http://jsfiddle.net/PaYcc/1/

于 2013-06-03T19:43:39.643 に答える