blur() vs onblur()
J'ai une balise input avec un écouteur d'événement onblur:
<input id="myField" type="input" onblur="doSomething(this)" />
Via JavaScript, je veux déclencher le flou de l'événement sur cette entrée, de sorte que, à son tour, appelle la doSomething
fonction.
Ma première pensée est pour appeler flou:
document.getElementById('myField').blur()
Mais qui ne marche pas (si pas d'erreur).
Ce n':
document.getElementById('myField').onblur()
Pourquoi est-ce? .click()
va appeler l'événement click attaché à un élément via le onclick de l'auditeur. Pourquoi ne blur()
pas de la même manière?
- Je pense que blur() jQuery et onBlur() est en Javascript.
- non, ce n'est pas vraiment précis, mais il est vrai que jQuery fournit un "flou" méthode pour déclencher un événement (ou d'enregistrer un gestionnaire). Cette méthode est alimenté par jQuery objets, cependant, et n'est pas disponible sur la plaine des éléments du DOM.
- Bien que la réponse à votre question, mais je suis toujours curieux de savoir ce qui vous a fait exécuter
doSomething()
fonction via déclenchement expliciteonblur
fonction! Pourquoi ne pourriez-vous pas appeldoSomething
directement? - ma mémoire est un peu floue de ce que je faisais il y a 7 ans 🙂
Vous devez vous connecter pour publier un commentaire.
Ce:
fonctionne parce que votre élément (la
<input>
) est un attribut appelé "onblur" dont la valeur est une fonction. Ainsi, vous pouvez l'appeler. Vous êtes pas qui dit au navigateur pour simuler le "flou" de l'événement, cependant; il n'y a pas d'événement de l'objet créé, par exemple.Éléments n'ont pas un "flou" de l'attribut (ou de la "méthode" ou quoi que ce soit), c'est pourquoi la première chose ne fonctionne pas.
this
à l'élément, mais vous pouvez double-vérifier que.Contrairement à ce que l'pointu dit, la
blur()
méthode n'existe pas et est une partie de la standard du w3c. La suite exaple à tous les navigateur moderne (y compris IE):Notez que j'ai utilisé
link.onmouseover
au lieu delink.onclick
, parce que sinon, le sur lui-même aurait supprimé le focus.Je suppose que c'est juste parce que l'événement onblur est appelé comme un résultat de l'entrée perdre le focus, il n'y a pas un flou action associée avec une entrée, comme il y a un cliquez sur action associée à un bouton