0

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

4

1 に答える 1

0

これを試して:

 getDetailsLocalnameInput = function(e) {
     getDetails(localnameInput.value);

     if(window.event){
         e.cancelBubble=true;//In IE
     }else{
         evt.stopPropagation();//in Others
     }

     //YAHOO.util.Event.preventDefault(e);
     //YAHOO.util.Event.stopPropagation(e);
 };
于 2009-08-04T03:45:12.747 に答える