2011-01-24 73 views
4

在jQuery(或瀏覽器中,我不確定了)中有一個整潔的小功能,當您使用鍵盤導航select元素時,確保jQuery當您按下多次輸入時,「更改」事件不會重新觸發。在同一索引上重複捕獲jQuery更改事件

這一切都很好,但我正在研究一個多選列表,其中所選元素從列表中刪除並添加到下面。這會導致您無法選擇與您之前選擇的項目(僅使用鍵盤)相同索引的項目,因爲它們被視爲相同。

在IE中,我可以通過更改事件結束復位用下面的代碼的比較數據解決的問題:

jQuery.data(this, "_change_data", null); 

我不知道爲什麼它只能在IE中工作。有沒有辦法爲同一個索引重複選擇每個觸發一個更改事件?

解決方案:一個簡單的解決方法就是禁用選定的值,而不是從列表中刪除它們。

+0

你可以給鏈接演示或把它放在jsbin – Kapil

+0

我添加了我最終使用的解決方法,問題。 –

回答

0

我沒有測試它 - 但我認爲這可能幫助:

event.preventDefault()

我已經看到了使用鼠標點擊 - 但我認爲它應該對所有的事件工作。不過,我認爲它依賴於瀏覽器正確地實現他們的事件行爲 - 所以可能存在跨瀏覽器問題。

相關問題