2

私は次のようなものを持っています:

<button id="button" onclick="alert('Hi')">a button</button>


ボタンのクリックアクションを無効にし たいのですが、たとえば、ページが読み込まれてから5秒間です。
注:ボタンを無効にしたくはありません。onclickアクションが5秒まで機能しないようにしたいだけです。

4

5 に答える 5

4

jQueryを使用して、5秒のタイムアウト後にイベントをバインドします。

setTimeout(function(){
    $('#button').click(function(){
        alert('Hi');
    });
}, 5000);
于 2012-05-04T16:26:01.330 に答える
4

onclick属性を削除して、5秒後に元に戻すだけです。

var onClickFunc = $('#button').prop('onclick');
$('#button').removeProp('onclick');
setTimeout(function(){
    $('#button').click(onClickFunc);
}, 5000);

デモ:http://jsfiddle.net/KX5g7/1/

于 2012-05-04T16:26:12.493 に答える
1
$(function(){
        $('#button').unbind('click');
        setTimeout(function(){
            $('#button').bind('click');
        }, 5000);
    });​

編集:

Rocketが言ったように、これはイベントのバインドを解除しないようです。したがって、イベントを発生させる属性を削除するのが良い解決策になると思います。

$(function(){
    $('#button').attr('onclick', '');
    setTimeout(function(){
        $('#button').attr('onclick', 'alert("Hi")');
    }, 5000);
});​
于 2012-05-04T16:27:13.680 に答える
1
$(function(){
    $('#button').attr('savedclick', $('#button').attr('onclick')).removeAttr('onclick');  
    setTimeout(enableButton, 5000);    
});

function enableButton(){
    $('#button').attr('onclick', $('#button').attr('savedclick')).removeAttr('savedclick');
}

<ahref = "http://jsfiddle.net/Yupt9/1/" rel ="nofollownoreferrer">デモ

于 2012-05-04T16:26:13.730 に答える
0

onclickそのためには、インラインに入れないでください。

$(document).ready(...)関数で、コールバック関数を使用してsetTimeout5秒間待機し、onclick($('#button').click(function(btn) { alert('Hi'); });)を設定します。

于 2012-05-04T16:27:37.190 に答える