jQuery: Erkennung von cmd + Klick / Kontrolle + Klick
habe ich die Möglichkeiten meiner web-Anwendung in tabs.
<ul id="tabs">
<li><a href="a.php">aaa</a></li>
<li><a href="b.php">bbb</a></li>
<li><a href="c.php">ccc</a></li>
<li><a href="d.php">ddd</a></li>
<li><a href="e.php">eee</a></li>
</ul>
Wenn der Benutzer klickt auf eine beliebige Registerkarte (im selben Fenster) gibt es einen fadeout-Effekt, die ich mit diesem code, und danach eine automatische Umleitung:
$('ul#tabs li a').click(function(e){
if(e.which == 1) {
var link = $(this).attr('href');
$('#content').fadeOut('fast',function(){
window.location = link;
});
}
});
Funktioniert es Super, denn es ignoriert die Maus Mittelklick (beim öffnen die option in einem neuen tab, die Wirkung sollte nicht ausgelöst werden). Das problem ist, dass, wenn ich öffnen Sie die Registerkarte mit einer Tastatur+Maus-Kombination, anstatt einen neuen tab öffnen, löst sich die ganze Wirkung/redirect-code.
So, wie kann ich erkennen, dieses mit jQuery:
- cmd + Maus Links klicken (mac)
- Strg + Maus Links klicken (windows/linux)
InformationsquelleAutor der Frage andufo | 2011-08-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem Klick-Funktion, führt e.metaKey "true" ausgewertet wird? Wenn ja, es gibt Sie.
InformationsquelleAutor der Antwort Mr. S
Leider
event.metaKey
nicht zu true ausgewertet werden, die auf Windows, wenn Sie die Strg-Taste gedrückt ist, auf klicken.Glücklicherweise
event.ctrlKey
nicht zu true ausgewertet, in diesen Situationen. Vielleicht möchten Sie auch zu prüfen, shift + Klicks in Ihrem event-handler.Damit, Ihre cross-Plattform-jquery gewürzt javascript-code würde ungefähr so Aussehen:
InformationsquelleAutor der Antwort Leighton Wallace
Verwendung von e ist.metaKey nicht funktioniert auf die gleiche auf windows, so zu erkennen, für Windows Sie können das navigator-Objekt und sehen Sie, ob der Benutzer anklicken die Strg-Taste (der Standard-Weg, um eine neue Registerkarte öffnen).
InformationsquelleAutor der Antwort Nish
Ich weiß, du jQuery verwenden möchten, aber ich würde geben, Keyboard einen Versuch:
https://github.com/madrobby/keymaster
Es ist wirklich toll, ich verwende es für ein Projekt an dem ich arbeite und es ist toll.
InformationsquelleAutor der Antwort JP Silvashy