クリックした直後にボタンを無効にしてから、アニメーションを実行する必要があります。
ボタンを1回だけクリックできるようにしますが、ボタンを無効にする前にアニメーションが完了するまで待つようにしたいとします。これは、アニメーション中にボタンが再度クリックされる可能性があるので、プログラムが望むように動作しない理由です。ここで
がどのようにボタンに確認することで、一度だけクリックすることができます。
$("#next").click(function(){
var pos = parseInt($("#box").css("left")),
newPos = pos + 100;
// disable button immediately after the click
// if you wait to disable, you give the user the chance to click twice
$("#next").unbind('click');
$("#next").attr("disabled", "disabled");
$("#box").animate({
"left" : newPos //move the box to the right by 100px
}, {
duration: 150
});
})
Working example
はunbind()
は多くのブラウザでは必要ないかもしれないが、それは、クリックイベントハンドラであることを保証します実際には#next
から削除されました。
感謝を見てみましょう修正しました。 – fortuneRice