J'ai joint un événement à une zone de texte à l'aide de addEventListener
. Ça fonctionne bien. Mon problème est survenu lorsque j'ai voulu déclencher l'événement par programme à partir d'une autre fonction.
Comment puis-je le faire?
javascript
events
triggers
addeventlistener
dom-events
KoolKabin
la source
la source
Réponses:
Vous pouvez utiliser fireEvent sur IE 8 ou inférieur, et dispatchEvent du W3C sur la plupart des autres navigateurs. Pour créer l'événement que vous souhaitez déclencher, vous pouvez utiliser soit
createEvent
oucreateEventObject
selon le navigateur.Voici un morceau de code explicite (du prototype) qui déclenche un événement
dataavailable
sur unelement
:la source
eventName
ici?Un exemple pratique:
Pour les anciens navigateurs polyfill et des exemples plus complexes, voir la documentation MDN .
Voir les tableaux de support pour
EventTarget.dispatchEvent
etCustomEvent
.la source
detail
est une propriété de laEvent
, alors affectez-lui toutes les données auxquelles vous souhaitez accéder à l'autre extrémité et accédez-yevent.detail
. +1Si vous ne voulez pas utiliser jQuery et n'êtes pas particulièrement préoccupé par la compatibilité descendante, utilisez simplement:
Voir la documentation ici et ici .
EDIT: Selon votre configuration, vous voudrez peut-être ajouter
bubbles: true
:la source
CustomEvent
et le polyfill correspondant.si vous utilisez jQuery, vous pouvez simplement faire
et le manipuler avec
où "[arg0, arg1, ..., argN]" signifie que ces arguments sont facultatifs.
la source
Si vous prenez en charge IE9 +, vous pouvez utiliser ce qui suit. Le même concept est incorporé dans You Might Not Need jQuery .
Si vous utilisez déjà jQuery, voici la version jQuery du code ci-dessus.
la source
window.CustomEvent
existe, mais il ne peut pas être appelé en tant que constructeur: caniuse.com/#search=CustomEvent ;)J'ai recherché des clics de tir, des mousedown et des mouseup sur mouseover en utilisant JavaScript. J'ai trouvé une réponse fournie par Juan Mendes . Pour la réponse cliquez ici .
Cliquez ici est la démo en direct et ci-dessous est le code:
la source
Juste pour suggérer une alternative qui n'implique pas la nécessité d'appeler manuellement un événement d'écoute:
Quoi que fasse votre écouteur d'événements, déplacez-le dans une fonction et appelez cette fonction à partir de l'écouteur d'événements.
Ensuite, vous pouvez également appeler cette fonction n'importe où ailleurs dont vous avez besoin pour accomplir la même chose que l'événement fait lorsqu'il se déclenche.
Je trouve cela moins "intensif en code" et plus facile à lire.
la source
Je viens d'utiliser ce qui suit (semble être beaucoup plus simple):
Dans ce cas, l'événement n'est déclenché que si la valeur a vraiment été modifiée, tout comme vous le déclencheriez par un locus de mise au point normal perdu effectué par l'utilisateur.
la source
element.click()
.Modification de la réponse de @ Dorian pour travailler avec IE:
FIDDLE: https://jsfiddle.net/z6zom9d0/1/
VOIR AUSSI:
https://caniuse.com/#feat=customevent
la source
La réponse acceptée n'a pas fonctionné pour moi, aucune de celles de createEvent n'a fonctionné.
Ce qui a finalement fonctionné pour moi, c'est:
Voici un extrait:
De la lecture: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
la source
la source
Vous pouvez utiliser cette fonction que j'ai compilée ensemble.
Déclenchez un événement ci-dessous:
Regarder l'événement:
J'espère que cela t'aides!
la source
Vous pouvez utiliser le code ci-dessous pour déclencher un événement à l'aide de la méthode Element:
Afficher l'extrait de code
la source
Le moyen le plus efficace consiste à appeler
addEventListener
directement la même fonction qui a été enregistrée .Vous pouvez également déclencher un faux événement avec
CustomEvent
et co.Enfin, certains éléments tels que la
<input type="file">
prise en charge d'une.click()
méthode.la source
cela déclenchera immédiatement un événement «beforeinstallprompt»
la source
Utilisez l'appel d'événement jquery. Écrivez la ligne ci-dessous à l'endroit où vous souhaitez déclencher le changement d'un élément.
element_id est l'ID de l'élément dont onChange vous souhaitez déclencher.
Évitez l'utilisation de
Parce qu'il a très moins de support. Référez-vous à ce document pour son support .
la source
HTML
JS
la source
Ce que vous voulez, c'est quelque chose comme ceci:
En utilisant jQuery, ce serait quelque chose comme ceci:
la source
document.getElementByClassName
n'existe pas. 2.document.getElementsByClassName
existe mais renvoie une liste. 3. cela ne fonctionne que pour quelques événements natifs sélectionnés. 4. Le dernier exemple déclenche un événement jQuery où aucun événement natif sous-jacent n'existe.