2012-10-06 13 views
6

Powiel możliwe:
event.preventDefault() vs. return falseJavaScript rodzimy odpowiednik dla jQuery event.preventDefault

Nie jestem pewien, ale o ile widzę, event.preventDefault pochodzi jQuery. jeśli tak, zastanawiam się czy istnieje jakiś natywny odpowiednik w JavaScript, robiący to samo?

+2

preventDefault to metoda DOM. Zobacz specyfikację W3C [tutaj] (http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation). – PHeiberg

+1

Nie sądzę, aby to pytanie było takie samo. – Barmar

+0

@Barmar temat jest taki sam, a odpowiedź jest odpowiednia w obu kontekstach, więc jaką wartość ma to, że obie są? –

Odpowiedz

10

preventDefault jest metodą DOM. Zobacz specyfikację W3C here.

+0

Dzięki za pomoc! :) – Mahdi

1

Zawijanie jQuery wokół natywnego obiektu zdarzenia JavaScript. preventDefault jest metodą JavaScript. możesz osiągnąć preventDefault w jQuery przez return false;.

+0

tak, myślę, że to prawda. ale co z dowolnym odpowiednikiem natywnie w JavaScript, gdy nie mamy "jQuery"? – Mahdi

+0

@Mahdi preventDefault jest powiązany z JavaScriptem, a nie jQuery. – Anoop

+2

jeśli zwrócisz false z obsługi zdarzeń jQuery, jest to równoważne wywołaniu preventDefault ** i ** stopPropagation. to nie to samo, co wywoływanie preventDEfault _only_ –

0

return false z ramach obsługi zdarzenia jQuery jest faktycznie taka sama jak dzwoni zarówno e.preventDefault i e.stopPropagation na przekazany jQuery.Event object.

e.preventDefault() uniemożliwi domyślne zdarzenie z występującego, e.stopPropagation() uniemożliwi zdarzenie od propagacji i return false zrobi oba. Należy zauważyć, że to zachowanie różni się od normalnych (nie-jQuery) procedur obsługi zdarzeń, w których, w szczególności, return falsedoes not stop the event from bubbling up.

Źródło: https://stackoverflow.com/a/1357151

Powiązane problemy