Force de se concentrer sur un élément avec une exception. (jQuery)
J'ai deux champs de saisie. Je veux forcer le focus sur #n'importe où l'utilisateur clique sur sauf c'est sur #entrée. J'ai essayé quelque chose comme ça, mais depuis que l'entrée est la partie du document, il ne fonctionne pas.
$("#area").focus();
$(document).click(function() { $("#area").focus() };
$("#input").click(function() { $("#input").focus() };
Pensées?
Vous devez vous connecter pour publier un commentaire.
changer de
Cela permettra de mettre fin à l'événement de remonter dans le document, et ne seront pris par le
#input
La
stopPropogation
solution est plus simple que ce que je suis sur le point de suggérer, mais il est probablement utile de discuter de cette option. Dans cette première fonction que vous avez, vous pourriez essayer de prendre le premier argument de la fonction, ce qui est un jQuery normalisée de l'objet d'événement:et de le tester pour voir si le
target
propriété de l'événement est de votre entrée:event.srcElement
qui ajoute à la complexité ..event
est un mot clé réservé dans IE, et donnera une erreur lorsque vous utilisez cela comme une variable. Aussi, la case que vous avez fournies peuvent être écrits plus simple (et plus court) queif ($(event.target).is('#input'))
Vous devez annuler la remontée d'événements en cliquant sur la normale, soit en retournant false dans votre gestionnaire d'événements, ou en appelant
e.stopPropagation()
.Je ne suis pas sûr si la commande qui vous permet d'assigner des gestionnaires d'événement de questions, mais vous pouvez essayer de mettre le
#input
premier événement.