问答详情
源自:2-3 jQuery中上卷下拉切换slideToggle

如何避免多次点击造成的循环

我将代码改为$("#a1").stop().slideToggle(3000)后,发现第二次点击并没有继续原来的动画,而是向相反方向运动,请问这是为什么呢?有没有解决的方法了?

提问者:暮女神 2017-06-18 21:30

个回答

  • qq_蒙蒙细雨_0
    2017-07-21 08:16:54

    $(selector).stop(stopAll,goToEnd)

    参数

    描述

    stopAll    可选。规定是否停止被选元素的所有加入队列的动画。    

    goToEnd     可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。

       


  • qq_蒙蒙细雨_0
    2017-07-21 08:14:33

    点击运行,初始状态是绿框显示。点击按钮,绿框收缩,再次点击按钮,绿框显示

     第一种:$("#a1").stop().slideToggle(3000)

    第二种: $("#a1").slideToggle(3000)

    两种代码执行效果相同。stop() 是停止当前正在运行的动画。单独使用stop(),会停止动画效果。

    那为什么第一种可以执行呢?

  • 慕设计2353769
    2017-07-05 16:04:02

    点击触发请求后,标志位为false量;请求(或者包括请求后具体的业务流程处理)后,标志位为true量。通过标志位来判断用户点击是否具备应有的响应。



  • Robert_Langdon
    2017-07-04 00:39:30

    没找到什么好办法,我是直接stop(false,true)跳过当前动画开始下一个

  • qq_徐涛_0
    2017-06-19 16:48:27

    stop()是停止所有在指定元素上正在运行的动画。是指正在进行的动画,刚开始动画还没开始,而且每次点击都进这个方法,就相当于重新开始,都不处于正在进行的动画,你可以用回调函数实现停止动画