2011-01-10 6 views
2

Ich habe eine Texteingabe, die an focusin/focusout Ereignisse gebunden ist.jquery focusout event fehlt relatedTarget Information

$(element) 
    .focusin(function(e) {}) 
    .focusout(function(e) { 
     var to = e.relatedTarget || e.toElement; 
     // undefined in chrome, fine in IE 
    }); 

auf focusout, ich bin interessiert an den relatedTarget Informationen, das heißt das DOM-Element Fokus als Texteingabe empfängt den Fokus verliert, jedoch ist diese Eigenschaft undefined für die Veranstaltung.

auf der anderen Seite, toElement, die ich glaube, ist der Internet Explorer equivalient von relatedTarget, verfügbar ist. Mit anderen Worten funktioniert mein focusout Handler im IE, aber nicht in anderen Browsern.

Gibt es eine Problemumgehung für die obige Einschränkung?

Antwort

-1

Von the MDC docs:

Nur Mausevents haben diese Eigenschaft

focusout kein Mausereignis ist, so relatedTarget nicht gesetzt ist. IE folgt hier nicht den Standards (was ist neu?).

+0

danke. Ich nehme an, ich könnte stattdessen mousedown verwenden. –

+0

@ob Wenn Sie diese Seite lesen, wird es weiter erklären, dass nur * einige * Mausereignisse 'relatedTarget' gesetzt haben. 'mousedown' gehört nicht dazu. Es macht keinen semantischen Sinn. – lonesomeday

+0

richtig, aber auf mousedown konnte ich e.target überprüfen. benötigt in diesem Fall nicht unbedingt relatedTarget. –