你想要的是防止可怕的堆棧點擊事件。有不同的處理方法,但基本上它們都是以設置布爾值爲準。
在你的例子中,我已經爲你的#choices容器設置了一個data()標籤,以false
的值開始。點擊後,我將布爾值更改爲true
。基本上,如果processing=false
我在點擊回調中執行代碼。
$("#choices").data('processing', false);
$("#rock").click(function() {
if (!$(this).parent().data('processing')) {
$(this).parent().data('processing', true);
user = roPaSc[0];
gamePlay();
}
});
$("#paper").click(function() {
if (!$(this).parent().data('processing')) {
$(this).parent().data('processing', true);
user = roPaSc[1];
gamePlay();
}
});
$("#scissors").click(function() {
if (!$(this).parent().data('processing')) {
$(this).parent().data('processing', true);
user = roPaSc[2];
gamePlay();
}
});
動畫後,布爾值需要重置。我在「else語句」中的openEyes函數中執行此操作。
else {
$("#you").attr({
'src': user
});
$("#computer").attr({
'src': com
});
$("#choices").data('processing', false);
}
這裏是「剪刀,石頭,布」的調整小提琴:http://jsfiddle.net/gpxxn/2/
我沒有一個解決方案,但這個問題似乎是與綁定功能,因爲其它功能如預期進行操作: http://jsfiddle.net/NotInUse/YQFwz/2/ – Scott 2013-04-21 17:34:02