开发者社区> 问答> 正文

一个JQ问题,左右移动问题

下面代码,点击一次向左,等完成后,再点击没问题,如果一直点,快速点,到头后还能跑过,这个怎么处理,是不是应该让点击执行完后才可再次点击,应该怎么写
screenshot

展开
收起
杨冬芳 2016-06-15 09:42:37 1828 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista

    有jsfiddle就很容易调了。

    第一想法当然是“让mousedown事件在执行完毕之前不能重复触发”。但千万小心——这个显然的思路完全不对:因为jQuery的动画过程是异步的!无论动画多长,这个mousedown事件都会立刻执行完毕。控制这个事件的重复触发必然是错误的。

    正确的方法是:让动画效果的播放过程中,不再触发mousedown事件。

    我用了个简单的方法:

    并不刻意反复的启用/禁止事件响应。
    动画开始前,设定容器元素的一个标志。
    使用.animate()的回调函数,控制动画结束后把标志去掉。
    如果mousedown事件执行时看到了标志,则直接跳出,不做实际动作。

    2019-07-17 19:38:41
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载