你想要的是防止可怕的堆栈点击事件。有不同的处理方法,但基本上它们都是以设置布尔值为准。
在你的例子中,我已经为你的#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