2011-12-06 3 views
0

私は以下のアドバイスを受け取り、私の質問を簡単にすることにしました。dijit.formでMouseOutイベントが発生しました。アイテムリストに行くときに選択します。

私が抱えている問題は、display onMouseOverとhidden onMouseOutであるカスタムdijitにdijit.form.Select dijitがあることです。これは、Selectを開いて項目のリストに行くときにonMouseOutイベントが発生するために発生します。これにより、onMouseOutイベントが発生し、カスタムdijitを終了します。

Selectはdijit._HasDropDownから継承し、ドロップダウンピースは実際にはdijitではなくbodyノードの直下に作成されるため、その部分をマウスで移動してonMouseOutを放置して起動すると考えられます。

これは実際にはうまくいくはずなのですが、間違っているだけですか?私は実際にこれをうまく動作させる方法を失ってしまいました。これがうまくいけば、さらにいくつかの意見が引き寄せられます。

+0

ウィジェットの完全なコードを貼り付けるのではなく、あなたの問題が本当に何であるかを調査し、面白い部分だけを投稿してください。あなたはあなたのページでそのウィジェットをどのように使用するのかわからない... – Philippe

答えて

0

右のように、dijitのすべてのドロップダウンと同様に、Selectのドロップダウンが直接アタッチされているため、onMouseOutイベントはカスタムウィジェットで発生します。

1つのアプローチ:フォーカスマネージャはthis.focusedウィジェットを設定します。とその子孫であるは、フォーカスを獲得/失います。したがって、this.focused == trueのときにウィジェットでもぼかしを無視することができます。

しかし、1つの複雑さは、ドロップダウンがカスタムウィジェットの下部を越えて延びるときにどうするかです。その場合、ドロップダウンをクリックするとドロップダウンが閉じられ、カスタムウィジェットの外側にカーソルが置かれますが、カーソルがウィジェットの境界を越えていないため、onmouseoutイベントは発生しません。とにかくそれはあなたがとにかく欲しいものかもしれません。

関連する問題