2010-10-06 10 views
10

Ho un elemento div. Ho bisogno di prendere un clic del mouse su questo div mentre viene premuto il tasto alt (keyCode = 17).jQuery: Come catturare keydown + evento click del mouse?

Ecco quello che ho avuto modo di catturare pressione di un tasto:

 
// 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') ? 
     } 
    }); 
}); 

Come catturare click del mouse su div mentre si tiene premuto alt-chiave?

+0

possibile duplicato del [Verifica tasti Ctrl/Shift/Alt sul 'click' evento] (http://stackoverflow.com/questions/2847135/check-ctrl-shift-alt-keys-on-click-event) e http://stackoverflow.com/questions/2445613/ e http://stackoverflow.com/questions/3781142/ –

+0

Buona domanda. Mi chiedo tuttavia delle condizioni di gara con codice vs utente in alcune possibili soluzioni pubblicate. –

+0

Contrassegno: Javascript è intrinsecamente a thread singolo, quindi le condizioni di gara diventano un non-problema. –

risposta

25

È possibile controllare il .altKey property, ad esempio:

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

You can test it out here.

+0

Bella soluzione per ascoltare prima l'evento click. Grazie. – SaltLake

+2

è per Alt. Per Ctrl usare event.ctrlKey – Igorock