0

我创建了一个新YAHOO.util.KeyListener的附加到特定元素,还创建了另一个新YAHOO.util.KeyListener的附加到整个文档。它们都与enter键相关联(键:13)。

在附加到特定元素的侦听器的处理函数中,我有以下代码:

            getDetailsLocalnameInput = function(e) {
                    getDetails(localnameInput.value);
                    YAHOO.util.Event.preventDefault(e);
                    YAHOO.util.Event.stopPropagation(e);
            };

然而,来自按键的事件继续传播到附加到整个文档的按键侦听器。我不希望附加到整个文档的关键侦听器的处理程序被启动。我确信这两个处理程序都被调用了,但只希望附加到特定元素的处理程序运行。

YAHOO.util.Event.stopPropagation使用with是否正确YAHOO.util.KeyListener

我应该采取不同的方法来防止keypress事件被传播吗?

我也尝试过使用该功能YAHOO.util.Event.stopEvent和设置e.cancelBubble,但没有成功。

我一直在用 Firefox 3.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 回答