Comment programmer un événement dblclick défini avec addEventListener?

pour le test de L'Unité JS, je dois vérifier qu'un double-clic se comporte comme prévu. Le problème est que l'événement a été enregistré via l'élément.addEventListener. Et pour une raison quelconque, dans ce cas, l'élément.ondblclick() ne fonctionne pas. HTML:

<input type="image" src="pic.jpg" id="aa"/>

Javascript:

document.getElementById('aa').addEventListener("dblclick", function(){alert('aa')});
document.getElementById('aa').ondblclick();

Violon: http://jsfiddle.net/prZKy/

si vous double-cliquez sur l'image, cela fonctionne, mais ondblclick() dans le javascript ne fonctionne pas.

quelqu'un a une idée sur comment le faire?

10
demandé sur Stilltorik 2013-08-23 13:19:35

2 réponses

Vous pouvez utiliser dispatchEvent par programmation d'événements de déclenchement:

var event = new MouseEvent('dblclick', {
    'view': window,
    'bubbles': true,
    'cancelable': true
  });
document.getElementById('aa').dispatchEvent(event);

voir la section "déclenchement d'événements intégrés" sur MDN.

Ici est un violon du code en action.

14
répondu CodingIntrigue 2013-08-23 09:31:15
var doubleClickEvent = document.createEvent('MouseEvents');
doubleClickEvent.initEvent('dblclick', true, true);
e.currentTarget.dispatchEvent(doubleClickEvent); // inside method

ça devrait marcher.

1
répondu Namish 2017-06-07 10:35:04