Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';改变';JQuery UI滑块的事件问题_Javascript_Jquery_Jquery Ui_Jquery Ui Slider - Fatal编程技术网

Javascript ';改变';JQuery UI滑块的事件问题

Javascript ';改变';JQuery UI滑块的事件问题,javascript,jquery,jquery-ui,jquery-ui-slider,Javascript,Jquery,Jquery Ui,Jquery Ui Slider,我有一个使用JQuery UI构建的滑块功能。它的行为应该是这样的: 滑块被激活/停用20次。每转一圈为5秒,在前2秒内滑块保持禁用状态,滑块手柄隐藏。之后,用户可以使用鼠标单击滑块上的任意位置来放置控制柄并选择一个值。单击后,用户还可以使用左/右箭头键调整手柄。在5秒钟结束时,发生了三件事:1。滑块处于禁用状态;2.手柄复位至最小值;3.把手是隐藏的。然后在下一个回合重新开始前有一个1秒的超时 下面是一个工作示例: 我注意到两个问题,这两个问题都发生在相同的条件下:用户在5秒周期结束时同时使用

我有一个使用JQuery UI构建的滑块功能。它的行为应该是这样的:

滑块被激活/停用20次。每转一圈为5秒,在前2秒内滑块保持禁用状态,滑块手柄隐藏。之后,用户可以使用鼠标单击滑块上的任意位置来放置控制柄并选择一个值。单击后,用户还可以使用左/右箭头键调整手柄。在5秒钟结束时,发生了三件事:1。滑块处于禁用状态;2.手柄复位至最小值;3.把手是隐藏的。然后在下一个回合重新开始前有一个1秒的超时

下面是一个工作示例:

我注意到两个问题,这两个问题都发生在相同的条件下:用户在5秒周期结束时同时使用鼠标和键盘来调整幻灯片上的手柄位置。您可以通过连续快速地单击幻灯片,同时在每一回合结束时按左键和/或右键来模拟此操作

如果您这样做,两件事中的一件会发生(并非每次都会发生,但几次尝试后肯定会重现):

  • 手柄将卡在您单击的最后一个位置,而不是重置为最小值并隐藏。似乎如果连续快速地单击或移动关键点,则在重置操作(即滑块禁用、手柄移动和隐藏)发生后,
    更改事件将触发

  • 更糟糕的是,有时滑块将被禁用,手柄将被隐藏,但在接下来的5秒钟内,no
    change
    事件将被触发,无论您在幻灯片上做什么,即单击鼠标或按左/右键根本不会定位手柄。因此,滑块在所有后续期间都将完全不可用。我觉得这与重置操作同时触发两个
    change
    事件(一个通过单击鼠标,另一个通过按下左/右键)的可能性有关

  • 如果您能了解这些问题的原因以及如何解决,我们将不胜感激


    另外,我尝试了多个版本的JQuery UI和JQuery,但问题依然存在。

    很遗憾,我无法解释这个问题,但我通过将
    change
    事件更改为
    start
    事件,成功地解决了这个问题(如果您专门将
    change
    事件用于其他内容,我认为这不起作用)。

    不幸的是,我无法解释这个问题,但我通过将
    change
    事件更改为
    start
    事件,成功地解决了这个问题(如果您专门使用
    change
    事件来处理其他事情,我认为这是不起作用的)。

    这应该是某种游戏吗?如果是,因为jQuery有“feux线程”,可能有助于解决这些问题。在我看来,您依赖计时器来创建“feux线程”,但要做到这一点,还需要做很多工作。只需注意,有一个额外的库已经做到了这一点(还有一堆你可能不需要的东西,但它并不庞大)@SpYk3HH,它不是一款游戏,而是用户指定的一些自定义交互。感谢
    gameQuery
    上的建议,但我觉得仅此滑块功能就有点过分了。这应该是某种游戏吗?如果是,因为jQuery有“feux线程”并且可能有助于解决这些问题。在我看来,您依赖计时器来创建“feux线程”,但要做到这一点,还需要做很多工作。只需注意,有一个额外的库已经做到了这一点(以及一些您可能不需要的其他东西,但它并不庞大)@SpYk3HH,它不是一款游戏,而是用户指定的一些自定义交互。感谢
    gameQuery
    上的建议,但我觉得仅此滑块功能就有点过分了。似乎使用
    stop
    事件至少可以防止第二个(以及更严重的)问题。似乎使用
    stop
    事件至少可以防止第二个(以及更严重的)问题。