2009-04-24 12 views
3

Ich habe einen Link wieAbbrechen Funktionalität in einem href

<a href="www.site.com" class="cancel">go there </a> 

Und dann habe ich einige jQuery:

$(".cancel").click(function(){ 
     confirm("sure??"); 
}); 

Aber wenn ich es geht noch brechen Sie in der Warnmeldung auf www.site .com statt nichts zu tun. Wie löst man das?

Antwort

6

die return-Anweisung hinzufügen:

$(".cancel").click(function(){ 
    return confirm("sure??"); 
}); 
+0

schlagen Sie mich um eine Sekunde. +1 –

+0

Normalerweise passiert mir das :-) –

1

Geben Sie das Bool aus bestätigen()?

(nicht viel von einem jQuery wizz, obwohl :))

+0

Sie haben die richtige Idee +1 –

8

Rückkehr Bool ist die alte Art und Weise, es zu tun, ist aber nicht die bevorzugte Methode in jedem Browser und ich hatte in diesen Tagen viele Probleme damit. jQuery umschließt das Ereignisobjekt und behandelt die Ereignisaufhebung für Sie.

http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

$(".cancel").click(function(event){ 
    if (!confirm("Sure??")) 
     event.preventDefault(); 
}); 
1

Tschad Recht hatte.

event.preventDefault(); ist die richtige Lösung. Ich habe versucht, false für ein Click-Ereignis auf einem Anchor-Tag zurückzugeben, und es würde nicht funktionieren, weil ich zuerst window.location aufgerufen habe. Durch das Setzen von event.Default() als erste Zeile in meinem Handler konnte ich dann das Fenster erstellen und es wurde korrekt geöffnet, ohne dass die href ausgeführt werden konnte.