2009-08-04 9 views
0

Ich habe einen neuen YAHOO.util.KeyListener zum Anhängen an ein bestimmtes Element erstellt und auch einen neuen YAHOO.util.KeyListener zum Anhängen an das gesamte Dokument erstellt. Sie sind beide der "Enter" -Taste zugeordnet (Tasten: 13).stopPropagation funktioniert nicht für KeyListener in YUI 2.7

In der Handler-Funktion für den Hörer auf das spezifische Element befestigt ist, ich den folgenden Code habe:

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

Doch setzt die Veranstaltung von der keypress den Schlüssel Zuhörer auf das gesamte Dokument an propagieren bis . Ich möchte nicht, dass der Handler für den Key-Listener, der an das gesamte Dokument angehängt ist, abgesetzt wird. Ich bin mir sicher, dass beide Handler aufgerufen werden, aber nur den Handler, der an das spezifische Element angehängt ist, ausführen sollen.

Ist es korrekt, YAHOO.util.Event.stopPropagation mit YAHOO.util.KeyListener zu verwenden?

Gibt es eine andere Art und Weise, wie ich verhindern sollte, dass das Keypress-Ereignis propagiert wird?

Ich habe auch versucht, mit der Funktion YAHOO.util.Event.stopEvent und Einstellung e.cancelBubble mit keinem Erfolg.

Ich habe das alles mit Firefox 3.5 getestet. Ich kann stopPropagation() überhaupt nicht bekommen.

Antwort

0

Versuchen Sie folgendes:

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); 
}; 
+0

'YAHOO.util.Event.stopPropagation' macht das Gleiche. Wenn das nicht funktioniert, wird das auch nicht funktionieren. – Nate