J'essaie de détecter si la touche Maj enfoncée lorsque le curseur est déplacé sur un élément particulier. La fonction incendie, mais seulement après em> je clique sur un autre élément en premier. Y a-t-il un moyen de contourner cela? J'ai essayé de me contenter du document et de l'élément, et j'ai essayé de créer une fonction pseudo-clic, mais jusqu'à présent, rien n'a fonctionné. Par exemple, le code suivant fonctionne uniquement après que je clique sur un autre élément de la page: p> Merci d'avance pour toute information. P> P>
4 Réponses :
J'ai essayé votre code comme celui-ci et ça marche parfaitement. Vous devez "changer" puis la sourisover, cependant.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script> loadHandler = function(){ $("#selector").mouseover(function(e){ if(e.shiftKey) { alert("the shift key is pressed"); } }); } </script> </head> <body onload="loadHandler();"> <div style="border:1px solid black" id="selector"> <br/> <br/> This is a div. <br/> <br/> <div> </body> </html>
@Mark: Il a été appliqué à un img, mais je devais ajuster ce que je faisais. Merci pour votre réponse cependant - cela a aidé.
Vérifiez ceci sur l'événement KeyPress: puis sur la touche: p> alors faites: p> $(document).keypress(function (e) {
if(e.shiftKey) {
alert("do something")
}
}
Je ne sais pas si j'ai compris à 100% de ce que vous essayez de faire, mais je pense que l'un des deux devrait fonctionner.
@MarCgg: Merci pour la réponse. Il s'est avéré que je devais ajuster ce que je faisais un peu, mais cela a répondu à ma question initiale.
Trop compliqué. Baiser (le garder court et simple). Découvrez la réponse de Martin Schaer! :-)
Il n'est pas nécessaire de stocker dans une variable lorsque la touche Maj enfoncée et libérée. Vous pouvez réaliser ce que vous essayez de aimer ceci:
$('#selector').mouseover( function(e){ if (e.shiftKey) { console.log("the shift key is pressed"); } } );
Cela devrait être la bonne réponse :-) Veuillez remplacer .Click () avec .mouseover ()
échantillon de travail,
Mouseevent.ShiftKey, Mouseevent.ctrlkey P>
<img onmouseover="keypress_test(event)" onmouseout="keypress_test(event)"> function keypress_test(event) { // false, no press, // true, pressed console.log(event.ctrlKey) console.log(event.shiftKey) }
Comment l'action pourrait-elle s'interposer, si elle est placée sur la survolte? Il y a un problème différent avec le code (à côté de la partie postée), je soupçonne.
@Dusoft: J'ai testé dans un document totalement nouveau sans autre JavaScript / JQuery (en dehors de la source de jQuery) et un seul élément de la page avec les mêmes résultats. Merci pour la suggestion cependant.