1

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

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

一个工作示例在这里:http: //jsfiddle.net/e2rym/

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

如果你这样做,两件事中的一件会发生(不是每次都发生,但在几次尝试后肯定可以重现):

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

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

任何想法为什么会发生这些问题以及如何解决这些问题将不胜感激。

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

4

1 回答 1

1

change不幸的是,我无法解释这个问题,但我确实设法通过将你的事件更改为一个事件来让它消失(如果你专门将事件用于其他事情start,我想这将不起作用)。change

于 2013-05-03T20:14:07.140 回答