Comment déclencher des événements en JavaScript?
J'ai joint un événement à une zone de texte à l'aide de addEventListener
. Il fonctionne très bien. Mon problème est survenu lorsque j'ai voulu déclencher l'événement par programmation à partir d'une autre fonction.
Comment puis-je le faire?
- Mozilla a un très bon article expliquant la Création et le déclenchement des événements en Javascript. Espérons que cela aide!
- S'il vous plaît changer la accepté de répondre à ceci, c'est plus up-to-date.
- On dirait que le MDN article déplacé ici
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser fireEvent sur IE 8 ou moins, et les normes du w3c dispatchEvent sur la plupart des autres navigateurs. Pour créer l'événement que vous souhaitez feu, vous pouvez utiliser
createEvent
oucreateEventObject
selon le navigateur.Ici est une auto-explicatif morceau de code (prototype) qui déclenche un événement
dataavailable
sur unelement
:eventName
contiennent ici?dataavailable
devrait être dans leeventName
variable je crois.document.dispatchEvent
etdocument.fireEvent
respectivement.document.createEvent
semble être dépréciée en faveur denew Event
: developer.mozilla.org/en-US/docs/Web/API/Document/createEventUn exemple de travail:
Pour les anciens navigateurs polyfill et des exemples plus complexes, voir MDN docs.
Voir tables de soutien pour
EventTarget.dispatchEvent
etCustomEvent
.si vous utilisez jQuery, vous pouvez simplement faire
et de les traiter avec
où "[arg0, arg1, ..., argN]" signifie que ces arguments sont facultatifs.
Si vous ne souhaitez pas utiliser jQuery et ne sont pas particulièrement préoccupés par rétro-compatibilité, il suffit d'utiliser:
Consultez la documentation ici et ici.
EDIT: Selon votre configuration, vous pouvez ajouter
bubbles: true
:CustomEvent
et la fonction polyfill.Si vous êtes l'appui IE9+ que vous pouvez utiliser les éléments suivants. Le même concept est intégré dans Vous ne Pourriez Pas Besoin de jQuery.
JS:
Si vous êtes déjà à l'aide de jQuery, ici est la version de jQuery le code ci-dessus.
JS:
HTML:
window.CustomEvent
existe, mais il ne peut pas être appelée dans le constructeur: caniuse.com/#search=CustomEvent 😉J'ai cherché pour le tir, cliquez sur, mousedown et mouseup événement à la souris à l'aide de JavaScript. J'ai trouvé une réponse à Juan Mendes. Pour la réponse, cliquez sur ici.
Cliquez sur ici est la démo live et ci-dessous le code:
Juste de proposer une alternative qui n'implique pas la nécessité d'appeler manuellement un écouteur d'événement:
Ce que votre écouteur d'événement à ne, déplacer dans une fonction et d'appeler cette fonction à partir de l'écouteur d'événement.
Ensuite, vous pouvez également appeler cette fonction n'importe où ailleurs que vous avez besoin pour accomplir la même chose que l'événement ne quand il se déclenche.
Je trouve cela moins de code "intensive" et plus facile à lire.
J'ai juste utilisé le suivant (semble être beaucoup plus simple):
Dans ce cas, l'événement est déclenché uniquement si la valeur était vraiment changé comme vous le feriez pour déclencher par une mise au point normale locus perdu effectuées par l'utilisateur.
element.click()
.Modifié @Dorian est réponse de travailler avec IE:
VIOLON: https://jsfiddle.net/z6zom9d0/1/
VOIR AUSSI:
https://caniuse.com/#feat=customevent
Vous pouvez utiliser cette fonction que j'ai compilé ensemble.
Déclencher un événement ci-dessous:
Regarder Événement:
Espérons que cette aide!
Vous pouvez utiliser le code ci-dessous à feu événement à l'aide de la méthode des éléments:
JS:
HTML:
Le moyen le plus efficace est d'appeler la même fonction qui a été enregistré avec
addEventListener
directement.Vous pouvez également déclencher un faux événement avec
CustomEvent
et co.Enfin certains éléments tels que le
<input type="file">
soutenir un.click()
méthode.ce sera imediattely déclencher un événement 'beforeinstallprompt'
Utiliser jquery cas d'appel.
Écrire au-dessous de la ligne où vous voulez déclencher un onChange de tout élément.
element_id est l'ID de l'élément dont le onChange vous voulez déclencher.
Éviter l'utilisation de
Parce qu'il a très peu de soutien. Consultez ce document pour sa soutien.
HTML
JS
Ce que vous voulez, c'est quelque chose comme ceci:
À l'aide de jQuery, ce serait quelque chose comme ceci:
document.getElementByClassName
n'existe pas. 2.document.getElementsByClassName
existent, mais renvoie une liste. 3. cela ne fonctionne que pour une poignée d'indigènes événements. 4. Le dernier exemple déclenche un jQuery cas où aucun natif sous-jacent de l'événement existe.