var mark2=true;
$(".right").click(function(){
if(mark2){
move(1);
mark2=false;
}
})
function move(obj){
obj.animate({
width: arrW[index],
height: arrH[index],
opacity: arrO[index],
left: arrL[index],
top: arrT[index]
},500,function(){
mark2=true;
})
}
点击$(".right") 执行move函数,主要是为了给obj元素添加动画,为了防止$(".right")点击的频率过快,让动画叠加,所以就用 mark2来控制,当动画执行完成后,也就是500毫秒后mark才为true,点击$(".right")才执行,否则不执行,但是我有一个疑问,就是当点击速度大于500毫秒的时候,if语句中的mark都没有执行的机会,又是重新一次点击了,那不是一直叠加动画了吗?因为mark一直为true,好像我这个理解是错误的,因为程序是能正常执行的,所以希望大神指点一下,程序的执行过程
我理解你的问题的核心是 点击速度大于500ms,是这样的,只有在同一个元素上相继触发了
mousedown mouseup
事件后才会触发click
事件。 触发click事件后才会执行move()所以你考虑的超时的情况是不会发生的。