keydown sur le corps?
Je veux obtenir alerté chaque fois que j'appuie sur une touche.
J'ai essayé:
$('body').live('keyup', function() {
alert('testing');
});
Mais ça ne fonctionne pas, ça pourrait être à cause de la sélection?
Mise à JOUR:
Voici mon code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>TODO supply a title</title>
<script type="text/javascript" src="../system/media/js/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('body').live('keyup', function() {
alert('testing');
});
});
</script>
</head>
<body>
<p>
TODO write content
</p>
</body>
</html>
Il n'a pas d'alerte de moi quand j'appuie sur quelque chose de bien qu'il fonctionne lorsque je remplace keyup
avec mouseover
et de la souris au-dessus de TODO write content
Pourquoi ne pas travailler?
Êtes-vous en appuyant sur les touches lorsque la souris est positionnée à l'intérieur d'une zone de texte ou une autre de contrôle d'entrée?
non..je ne suis pas avoir quoi que ce soit concentré..juste envie d'appuyer sur une touche et il autofocus et collez-le dans que keypress dans un champ de saisie. si je tape "bonjour" je veux être indiqué dans le champ de saisie.
Votre test fonctionne pour moi. Pouvez-vous donner plus d'info, ou une démonstration de la page web?
sont u tapant l'intérieur d'un champs de saisie? je viens de cliquer à l'extérieur et tapez quelque chose, mais je ne reçois aucune alerte...il fonctionne lorsque je tape de l'intérieur d'un champ de saisie ou de l'utilisation du passage de la souris à la place..
Le code ci-dessus fonctionne pour moi. Assurez-vous que la page a le focus et aussi que quelque chose n'est pas l'arrêt de la propagation de l'évènement (un autre événement keyup gestionnaire).
non..je ne suis pas avoir quoi que ce soit concentré..juste envie d'appuyer sur une touche et il autofocus et collez-le dans que keypress dans un champ de saisie. si je tape "bonjour" je veux être indiqué dans le champ de saisie.
Votre test fonctionne pour moi. Pouvez-vous donner plus d'info, ou une démonstration de la page web?
sont u tapant l'intérieur d'un champs de saisie? je viens de cliquer à l'extérieur et tapez quelque chose, mais je ne reçois aucune alerte...il fonctionne lorsque je tape de l'intérieur d'un champ de saisie ou de l'utilisation du passage de la souris à la place..
Le code ci-dessus fonctionne pour moi. Assurez-vous que la page a le focus et aussi que quelque chose n'est pas l'arrêt de la propagation de l'évènement (un autre événement keyup gestionnaire).
OriginalL'auteur ajsie | 2010-02-09
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser
$("html")
ou$("*")
au lieu de$("body")
. Pour lekeyUp
événement sur le corps de feu, le corps de nœud ou de l'un de ses enfants doit être porté. Vous pouvez effectuer cette opération dans votre exemple, par l'ajout d'un texte d'entrée et la focalisation de la souris pour que l'entrée. Ce que vous voulez vraiment est de capturer toutes les clés de la presse, de sorte$("html")
devrait fonctionner.Modifier: je pense que votre exemple pourrait fonctionner, mais en tout cas, pour exécuter la logique conditionnelle, vous pouvez essayer ceci:
Ou, je pense que ce sera aussi le travail:
Réponse à la réponse...
OriginalL'auteur Bryan Matthews
Il suffit d'écouter la fenêtre!
OriginalL'auteur hinter
J'ai essayé ce code. Cela fonctionne bien.
OriginalL'auteur Prasanna
Il ne fonctionne pas parce que votre page n'a pas le focus.. vous devez cliquer sur la page et il va fonctionner..
vous pouvez également force définir le focus à un élément d'entrée et ainsi attirer l'attention sur la page..
Si cliquez n'importe où mais votre
<p>
élément de l'événement sera enregistré sur le document plutôt que le corps. Le corps est de la même hauteur que le contenu. Essayez de l'écoute du document.OriginalL'auteur Gabriele Petrioli
Espère que cela aidera.
OriginalL'auteur Jaison