stopPropagation не работает для KeyListener в YUI 2.7 - PullRequest
0 голосов
/ 04 августа 2009

Я создал новый YAHOO.util.KeyListener для присоединения к определенному элементу, а также создал еще один новый YAHOO.util.KeyListener для прикрепления ко всему документу. Оба они связаны с клавишей «ввод» (ключи: 13).

В функции обработчика для слушателя, прикрепленного к конкретному элементу, у меня есть следующий код:

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

Тем не менее, событие от нажатия клавиши продолжает распространяться вплоть до слушателя ключа, прикрепленного ко всему документу. Я не хочу, чтобы обработчик для ключевого слушателя, присоединенного ко всему документу, был удален. Я уверен, что оба обработчика вызываются, но только для запуска обработчика, прикрепленного к конкретному элементу.

Правильно ли использовать YAHOO.util.Event.stopPropagation с YAHOO.util.KeyListener?

Есть ли другой способ предотвратить распространение события нажатия клавиши?

Я также попытался с помощью функции YAHOO.util.Event.stopEvent и установки e.cancelBubble безуспешно.

Я тестировал все это с Firefox 3.5. Я не могу заставить stopPropagation () работать вообще.

1 Ответ

0 голосов
/ 04 августа 2009

Попробуйте это:

 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);
 };
...