特定の要素に添付するための新しいものを作成し、ドキュメント全体に添付するための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()。