2009-02-02 4 views
7

Ich habe seit einiger Zeit nach diesem gesucht, habe aber keine Erklärung.Warum verwendet das Ereignis "onmouseover" "return true", um Standardverhalten zu verhindern?

Für "Onclick" und andere Veranstaltungen in Javascript, Rückkehr der Event-Handler falsch bedeutet "Standardaktion verhindern". Es gibt jedoch eine Ausnahme für "onmouseover". Bei "onmouseover" bedeutet die Rückgabe true bedeutet "Standardaktion verhindern".

Warum gibt es so einen seltsamen Ausnahmefall für "onmouseover"?

Antwort

6

Statt mit Rückkehr falsch/wahr Standardereignis Verhalten zu verhindern, verwenden Sie die Standardmethode/Attribut für das Ereignisobjekt:

elem.onmouseover = function(e) { 
    if (!e) var e = window.event; // IE 
    if(e.preventDefault) { 
     e.preventDefault(); 
    } else { 
     e.returnValue = false; // IE 
    } 
} 
2

Wer weiß wirklich, warum. So wie es ist: Sie geben TRUE von onmouseover zurück, um zu verhindern, dass URL in der Statusleiste angezeigt wird, was in der Tat das Standardverhalten wäre.

3

Soweit ich weiß, ist die Rückgabe von true, um zu verhindern, dass die URL eines Links in der Statusleiste angezeigt wird, ein IE-spezifisches (Fehler-) Feature. Und zu versuchen, zu verstehen, warum IE Dinge so macht, wie es ist, ist oft ein verlorener Grund - nur damit leben ...

Verwandte Themen