Ce problème est simplifié.Autres éléments n'écoutant pas CustomEvent
J'ai un bouton. Lorsque ce bouton est cliqué, il va envoyer l'événement personnalisé customClick
. Donc, je veux d'autres éléments DOM
, comme l'entrée, pour écouter ces événements personnalisés.
Mais l'entrée n'écoute pas. Seul bouton sur lequel l'événement d'envoi écouterait customClick
.
Qu'est-ce que je fais mal? Comment est-ce que je peux faire l'élément d'entrée écoutent l'événement customClick
?
var button = document.getElementById('customClick');
button.addEventListener('click', function(e){
var clickedButton = e.currentTarget;
var newEvent = new CustomEvent("customClick");
//console.log(newEvent);
clickedButton.dispatchEvent(newEvent);
})
button.addEventListener('customClick', function(e){
alert('button listening customClick');
})
var input = document.getElementById('input');
input.addEventListener('customClick', function(e){
alert('input listening customClick');
})
<button id="customClick">custom click</button>
<input id="input" type="text" />
Vous voulez une entrée pour répondre à un événement tiré sur un bouton? Si c'est le cas, vous avez besoin d'un parent commun pour «capturer» l'événement. Voir bouillonnement vs capture: https://stackoverflow.com/questions/4616694/what-is-event-bubbling-and-capturing –
Le bouton et l'entrée sont frères et sœurs adjacents, vous avez beaucoup d'options à votre disposition. Ils n'impliquent pas tous l'entrée à l'écoute d'un événement personnalisé (c'est trop, BTW). Que fera exactement l'entrée une fois qu'un customClick est déclenché? Peu importe ce que vous voulez appeler, c'est toujours un clic, à moins bien sûr que ce CustomClick ** n'implique pas ** que l'utilisateur clique sur un élément ...? – zer00ne