11 Stimmen

PreventDefault-Alternative für IE8

Situation : Ich versuche, VideoJS.com so zu ändern, dass es mit IE8 und Youtube Chromeless API funktioniert.

Problem : Ziehen des Fortschrittsbalkens funktioniert nicht (Fehler bei event.preventDefault(); 'nicht unterstützt' laut Debug)

Demo : http://alpha.dealertouch.mobi/video/demo.html

Was ich ausprobiert habe : Überspringe 'preventDefault', wenn es sich um den IE handelt, aber wenn ich das tue, verliere ich die Funktionalität der Fortschrittsleiste (vorwärts und rückwärts ziehen/klicken)

Frage : Wie kann man dieses Problem für den IE8 am besten lösen?

29voto

Kevin Horn Punkte 4047

Ich verwende etwas wie:

(event.preventDefault) ? event.preventDefault() : event.returnValue = false; 

die event.returnValue Eigenschaft ist das nächste IE-Äquivalent zu preventDefault .

Verwendung von

return false;

kann manchmal auch funktionieren, aber es kann manchmal zu unerwartetem Verhalten führen, wenn es z.B. mit jQuery gemischt wird (jQuery macht auch stopPropagation ...der ist in der Regel was Sie wollen, aber...), deshalb verlasse ich mich lieber nicht darauf.

5voto

Tgr Punkte 26333

Der IE8 unterstützt nicht preventDefault ; es hat returnValue statt. jQuery sollte das für Sie normalisieren, obwohl. Sind Sie sicher, dass Sie aufrufen preventDefault auf den jQuery-Event-Wrapper (und nicht auf das eigentliche Event-Objekt)?

1voto

sebarmeli Punkte 17559

Verwenden Sie einfach

return false;

Es ist browserübergreifend und hat den gleichen Zweck wie event.preventDefault();

Die gleiche Anweisung in jQuery ist etwas anders, es enthält auch stopPropagation().

-1voto

Traveling_Monk Punkte 778

Verwenden Sie

$('.selector').click(function(event) {event.preventDefault();

Jquery-Dokumente

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X