2011-12-06 16 views
0

我決定採取下面的建議,並重新做我的問題更簡單。MouseOut事件觸發dijit.form.Select時,去項目列表

我遇到的問題是我有一個dijit.form.Select dijit在顯示onMouseOver和隱藏onMouseOut的自定義dijit。這是由於在打開選擇並轉到項目列表時觸發onMouseOut事件。這會導致onMouseOut事件觸發並關閉我的自定義dijit。

我能想到的最好方法是Select從dijit._HasDropDown繼承,而下拉片實際上是直接在body節點下創建的,而不是在dijit中創建的,因此它認爲當鼠標移動到該部分時,它已經離開並觸發onMouseOut。

這真的是應該的工作方式,我只是做錯了嗎?我對如何讓這個工作起作用感到茫然,希望這會更好,並且會吸引更多的觀點。

+0

我認爲你應該調整你的問題真正的調查,而不是粘貼你的小部件的完整代碼,然後只發布有趣的部分。我們甚至不知道您如何在您的網頁上使用該小部件... – Philippe

回答

0

對,onMouseOut事件發生在您的自定義小部件上,因爲Select的下拉菜單與dijit中的所有下拉菜單直接相關。

一種方法:焦點管理器將設置此項。將焦點置於小部件當小部件和它的後代時,作爲一個單元,獲得/失去焦點。所以當this.focused == true時,即使在你的小部件上你也可以忽略模糊。

但是,一個複雜的問題是當下拉菜單延伸到您的自定義小部件的底部時要做什麼。在這種情況下,單擊下拉菜單將關閉下拉菜單,從而將光標放在您的自定義小部件之外,但由於光標未穿過您的小部件邊框,因此不會出現onmouseout事件。也許這就是你想要的。

相關問題