2010-12-18 18 views
10

czy przeglądarka internetowa nie obsługuje e.preventDefault w javascript. Jeśli nie, jaki jest powód i jakie są alternatywy. Proszę nie sugerować żadnych odpowiedzi jQuery, mootools.czy przeglądarka internetowa obsługuje e.preventDefault

if (!e) e = window.event;

if (e.preventDefault) { 
    e.preventDefault(); 
} else { 
    e.returnValue = false; 
} 

+2

możliwe kopią funkcji [event.preventDefault() nie działa w IE. Jakąkolwiek pomoc?] (Http://stackoverflow.com/questions/1000597/event-preventdefault-function-not-working-in-ie-any-help) (zabawne, było to pierwsze trafienie podczas googlowania dla 'event preventdefault in tj. ') –

+1

@Felix Jestem bardziej skłonny do tego, dlaczego nie działa i czy jest w jakiś sposób związany z modelem zdarzeń IE. Ponadto link mówi więcej o mootools i jQuery, których ja nie internauci. –

+0

Ale zaakceptowana odpowiedź nie jest specyficzna dla struktury. –

Odpowiedz

14

Ok jeśli nalegać:

event.preventDefault nie działa, ponieważ nie istnieje w IE.

Z tego powodu, że nie istnieje, trzeba by pracować dla MS. Generalnie, IE nie zawsze jest zgodny ze standardami.

documentation mówi można ustawić event.returnValue:

false
domyślna akcja zdarzenia na obiekcie źródłowym zostanie anulowane.

i dalej:

Uwagi

Wartość tej właściwości ma pierwszeństwo przed wartościami zwracanych przez funkcję, na przykład poprzez instrukcji return Microsoft JScript.

Standardy Informacja

Nie ma standardowego publicznego, który odnosi się do tej nieruchomości.

preventDefault seems to be supported in IE9.

+1

Używam IE 7 i event.returnValue = false; również nie działa. Dodaj mój kod powyżej, czy możesz wskazać coś. –

+1

@sushil bharwani: Musisz zrobić 'if (e.preventDefault)' (bez nawiasów).Nie chcesz wywoływać funkcji, chcesz sprawdzić, czy jest ona zdefiniowana. –

+0

o mój zły. jesteś naprawdę wspaniały !!! dzięki –

-5

To nie obsługuje go, ponieważ ktoś w Microsoft postanowił więc.

Alternatywą jest event.cancelBubble.

+1

Czy anulowanie bulgotania zapobiega domyślnej akcji? –

+2

i donot think event.cancelBubble jest zamiennikiem event.preventDefault ... może jednak być dla e.stopPropogation. –

Powiązane problemy