2010-12-13 11 views
3

In welchem ​​Zustand wir JQuery verwenden: event.preventDefault(); .... wo wird es verwendet werden?JQuery: event.preventDefault()

+2

Das ist ganz die lesenswert: http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ – Keyo

Antwort

7

Wenn Sie das Standardverhalten verhindern möchten. Wenn Sie zum Beispiel ein Formular-Übermittlungs-Ereignis bearbeiten, wenn Sie mit AJAX posten möchten und Ihre Seite nicht aktualisiert werden soll, verwenden Sie event.preventDefault().

$('#myform').submit(function(ev) { 
    ev.preventDefault(); 
    // ajax stuff... 
}); 

false aus Ihrer Funktion Rückkehr wird in der Regel die gleiche Wirkung hat.

+0

Dank gibt mir ans ... .aber ich bin verwirrt :::: Gibt es Unterschiede zwischen "return false" und ev.preventDefault(), also kann ich "false" anstelle von "preventDefault()" verwenden ... ja? Darf ich richtig oder nicht? –

+0

IMO event.preventDefault(); ist besser als falsch zurückgeben. Wenn Sie return false verwenden und ein Fehler auftritt, wird das Ereignis weiterhin ausgelöst, was es normalerweise schwieriger macht, zu debuggen (Wenn Sie zu einer neuen Seite navigieren, ist die gesamte Fehlerinfo verloren). –

+0

@hitesh, siehe meine aktualisierte Antwort – kobe

3
function() { 
    return false; 
} 

// IS EQUAL TO 

function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
} 

ein weiteres sehr gutes Beispiel dafür ist href

<a href="http://www.sometest.com" class="justtest"> 
test</a> 

der folgende Code eine Warnung zeigen und führt den Benutzer zu seinem Standardverhalten, das

$('.justtest').submit(function(ev) { 
    alert("a href click"); 
}); 

wenn i href und www.sometst.com ist Verwenden Sie event.preventDefault, es wird nur die Warnung angezeigt und das Standardverhalten wird beendet. Der Benutzer wird nicht zu

$('.justtest').submit(function(ev) { 
    alert("a href click"); 
    event.preventDefault();// this is better 
    // return faslse// return false will kill all the events so try to use preventDefault 
}); 

bekam es von SO nur

falsche Rückkehr von jQuery Event-Handler entspricht sowohl dem Aufruf, e.preventDefault and e.stopPropagation.

So ist der Unterschied besteht darin, dass preventDefault nur die Standard-Ereignisaktion verhindern ein Auftreten, das heißt Seitenumleitung bei einem Linkklick, eine Formularübergabe usw. und Rückgabe false stoppt ebenfalls den Ereignisfluss.

sehen diese auch

http://css-tricks.com/return-false-and-prevent-default/

Verwandte Themen