2010-10-06 11 views
10

Ich habe ein div Element. Ich muss einen Mausklick auf diese div fangen, während Alt-Taste (keyCode = 17) gedrückt wird.jQuery: Wie Keydown + Mausklick Ereignis zu fangen?

Hier ist, was ich habe Tastendruck zu fangen:

 
// Html 
<div id="targetDiv">I want to put a ding in the universe.</div> 
 
// Java-script 
$(document).ready(function(){ 
    $(window).bind('keydown', function(event){ 
     if (17 == event.keyCode) { 
      // How to catch mouse click on $('#targetDiv') ? 
     } 
    }); 
}); 

Wie Mausklick auf div zu fangen, während Alt-Taste gedrückt wird?

+0

möglich Duplikat von [Prüfen Sie die Strg/Umschalt/Alt-Taste bei 'Klick' Ereignis] (http://stackoverflow.com/questions/2847135/check-ctrl-shift-alt-keys-on-click-event) und http://StackOverflow.com/Questions/2445613/ und http://StackOverflow.com/Questions/3781142/ –

+0

Gute Frage. Ich wundere mich über Race Conditions mit Code vs Benutzer in einigen möglichen veröffentlichten Lösungen. –

+0

Markierung: Javascript ist von Natur aus single-threaded, so dass Race-Bedingungen kein Problem darstellen. –

Antwort

25

können Sie die .altKey property überprüfen, zum Beispiel:

$(function() { 
    $("#targetDiv").click(function(event) { 
    if (event.altKey) { 
     //do something, alt was down when clicked 
    } 
    }); 
}); 

You can test it out here.

+0

Eine gute Lösung, um zuerst auf das Klickereignis zu hören. Vielen Dank. – SaltLake

+2

ist es für Alt. Für Ctrl verwenden Sie event.ctrlKey – Igorock

Verwandte Themen