2013-07-25 7 views
5

gedrückt I preventDefault() bin mit Standardverhalten eines ein Anker-Taste zum Verhindern, aber ich möchte auf diese Schaltfläche, um das Standardverhalten zu tun, wenn sie mit Tastatur ctrl Schaltfläche geklickt,jQuery - außer Kraft setzen prevent(), wenn Klick + ctrl

JS Code

$('a').click(function(e){ 
    e.preventDefault(); 
}); 

HTML-Code

<a href="http://google.com">Go to the best search engine</a> 

Hier ist der Spielplatz: http://jsfiddle.net/sKDuA/

Antwort

12
$('a').click(function(e) { 
    if (!e.ctrlKey) { 
     e.preventDefault(); 
    } 
}); 

Andere intertesting Optionen:

  • e.altKey - zu überprüfen, ob Alt
  • e.shiftKey gedrückt wurde - zu überprüfen, ob Shift-
  • gedrückt wurde
  • e.button - um zwischen zu unterscheiden en rechts klickt
  • e.which der mittleren Maus links - gleich wie oben, funktioniert aber auch für Tastatur
  • vollständige Dokumentation here

Noch eine Anmerkung, wie Sie Dokumentation gebeten, so zu sein scheinen wirklich interessiert;)

Es ist möglich, in jsfiddle debuggen - einfach debugger in Ihrem js-Code und laufen wie gewohnt. Ihr Browser (ich benutze Chrome) an der Debug-Linie stoppen würde, und man konnte das e Objekt in den Uhren untersuchen:

enter image description here

+0

bekam ein Problem in Firefox, wie mehrere Schlüssel Strg + Alt verwenden, tun Sie kenne jede Seite, wo ich Dokumentation auf der Tastatur lesen kann? – user007

+0

Danke für die Hilfe, hoffe, dass dies auch auf anderen Betriebssystemen funktioniert !! – user007

+1

Froh, es hat funktioniert. Beachten Sie, dass Sie jsFiddle (wie jedes andere Javascript) auch debuggen können - möglicherweise hilfreich. – andreister

Verwandte Themen