我有使用JQuery UI構建的滑塊功能。它應該表現如下:使用JQuery UI滑塊「更改」事件問題
滑塊被激活/停用20次。每轉都是5秒鐘的時間,在此期間滑塊保持禁用狀態的前2秒,滑塊手柄處於隱藏狀態。之後,用戶可以使用鼠標單擊滑塊上的任意位置以放置句柄並選擇一個值。點擊後,用戶也可以使用左/右箭頭鍵來調整手柄。在5秒鐘結束時,發生三件事:1.滑塊被禁用; 2.手柄重置爲最小值; 3.手柄處於隱藏狀態。然後在下一個回合重新開始之前有1秒的超時時間。
工作示例是在這裏:http://jsfiddle.net/e2rym/
我已經注意到了兩個問題,這兩個相同的條件下發生的:用戶使用鼠標和鍵盤在5月底調整幻燈片上的手柄位置-第二階段。我們可以連續快速地模擬點擊幻燈片,同時在每回合結束時按左和/或右鍵同時。
如果你這樣做,對兩件事情會發生(不是幾次嘗試後,每一次,但絕對可重複):
手柄將卡住你點擊,而最後的位置比被重置爲最小和隱藏。看起來如果你點擊或移動按鍵的速度不夠快,那麼
change
事件將在之後觸發發生重置操作(即滑塊被禁用,移動和隱藏手柄)。更糟糕的是,有時候滑塊將被禁用,手柄會被隱藏,但在以下5秒的時間,沒有
change
事件將永遠不會不管你做什麼,在幻燈片,即開除點擊鼠標或按左/右鍵不能定位手柄。因此,滑塊在隨後的所有時段都完全無法使用。我認爲這與在重置動作發生時同時觸發兩個事件(一個是通過點擊鼠標,另一個是通過按左/右鍵)相關。
任何想法爲什麼會發生這些問題,以及如何解決它們將不勝感激。
P.S.我已經嘗試過JQuery UI和JQuery的多個版本,但問題仍然存在。
這應該是某種遊戲?如果是這樣,jQuery的[gameQuery](http://gamequeryjs.com/)具有「非特定線程」並可能有助於解決這些問題。在我看來,你要依靠定時器來創建「feux-threads」,但是要做到這一點還需要做很多事情。只是注意到有一個額外的庫已經做到了這一點(以及一些其他你可能不需要的東西,但它並不是很大) – SpYk3HH 2013-05-03 19:14:52
@ SpYk3HH,它不是一個遊戲,而是由用戶指定的一些自定義交互。感謝您提供關於'gameQuery'的建議,但是我覺得僅僅爲了這個滑塊功能,這有點矯枉過正。 – skyork 2013-05-03 19:28:55