2011-08-02 7 views
0

私は奇妙な問題を抱えていますが、div要素の中にいくつかの入力要素があります。 div要素には、左右のキーを取得するためのイベントハンドラがアタッチされています。 div要素にはtabIndexもあります。入力要素の左右キーバブル

私が望んでいるのは、div要素が作成されているときに、左右のキーを取得できることです。これは動作し、左キーと右キーが押された場合、イベントをキャンセルして(バブルを止めてデフォルトを防ぎます)

しかし、left要素とright要素はinput要素では機能しません。代わりにdiv要素がキーを処理してイベントをキャンセルします。

これは正常な動作ですか?もしそうなら、私はそれについて何ができますか?

おかげで、

AJ

+0

コード実装の例がないと答えにくい – anderssonola

答えて

1

それは、イベントバブルの問題です。

対象ブラウザが何であるか分かりませんが、場合によっては、外側のdivから最初に取得されたイベント、内側のdivが最初に取得されたイベントなどがあります。 標準は、イベントがダウンしてからダウンすることです。

あなたのdivがバブリングフェーズ(上向き)でキャプチャする必要があります。yourdiv.addEventListener('keydown',doSomething,false)を使用してください(あなたのイベントのタイプを変更する、キー押しなどがあります)。

Hereは、私が行ったよりもうまく説明できる便利なリンクです。

関連する問題