2

クリックの結果としてアニメーション化するボタン + リンクのクリック メソッドがあります。ただし、一度だけ機能するようにしたいです。ボタンをクリックした後、ボタンを無効にすることができたので、それは良いことです。しかし.disabled = true、リンクを試してみましたが、うまくいきませんでした。2回以上クリックされないようにする方法はありますか?

JS

$('#frontbutton, #loginlink').on('click', function(){
    $('.popup').hide();
    usernameInput.val('');
    emailInput.val('');
    passwordInput.val('');
    confirmInput.val('');
    $('.intro').animate({opacity: '0.5'}, 1000).delay(800).animate({
        left: "+=300px"
    });
    setTimeout(function(){
        $('.formholder').show()}, 2000);
    $('.toppic').animate({opacity: '0.5'}, 1000).delay(800).animate({
        top: "+=300px"
    });
    document.getElementById('frontbutton').disabled = true;
});
4

3 に答える 3

5

.one()の代わりに使用して.on()ください:

$('#frontbutton, #loginlink').one('click', function(){

.one()のように動作.on()しますが、ハンドラーは呼び出されるとバインドを解除します。

于 2012-09-04T01:30:30.200 に答える
1

one('click',function(){...の代わりに試してくださいon('click',function(){...。イベントは要素ごとに 1 回だけ実行されます。
これがドキュメントです。

于 2012-09-04T01:30:41.927 に答える
1

jqueryを使用すると、この方法でイベントをオフにすることができます

 $('#frontbutton, #loginlink').on('click.myEventNamespace',function(){
       //Run my code
       $('#frontbutton, #loginlink').off('click.myEventNamespace');
 });

イベント内でこれを行うこともできます。jQueryを使わないときのために知っておく価値があるかもしれないと思った

 this.removeEventListener('click',arguments.callee,false);
于 2012-09-04T01:34:28.110 に答える