特定の要素に添付するための新しいものを作成し、ドキュメント全体に添付するためのYAHOO.util.KeyListener
別の新しいものも作成しました。YAHOO.util.KeyListener
それらは両方ともキーに関連付けられていenterます(keys:13)。
特定の要素にアタッチされたリスナーのハンドラー関数には、次のコードがあります。
getDetailsLocalnameInput = function(e) {
getDetails(localnameInput.value);
YAHOO.util.Event.preventDefault(e);
YAHOO.util.Event.stopPropagation(e);
};
それでも、キーを押したときのイベントは、ドキュメント全体に添付されたキーリスナーまで伝播し続けます。ドキュメント全体にアタッチされたキーリスナーのハンドラーが開始されないようにします。両方のハンドラーが呼び出されていることは確かですが、特定の要素にアタッチされているハンドラーのみを実行する必要があります。
YAHOO.util.Event.stopPropagation
で使用するのは正しいYAHOO.util.KeyListener
ですか?
keypress
イベントが伝播されないようにするための別の方法はありますか?
また、機能YAHOO.util.Event.stopEvent
や設定e.cancelBubble
を使ってみましたが、うまくいきませんでした。
私はFirefox3.5でこれらすべてをテストしてきました。まったく仕事ができませんstopPropagation()
。