Méthode wrapper Jquery dispatchEvent

Existe-t-il une méthode wrapper ou une bibliothèque pour dispatchEvent dans jQuery? Je cherchais cela sur stackoverflow, mais la méthode la plus proche que j’ai trouvée est le sortinggger () de jquery, qui semble ne déclencher que les écouteurs d’événements jquery. Bien sûr, je pourrais simplement utiliser dispatchEvent moi-même, mais je veux utiliser jQuery pour rendre mon code plus facile à lire.

J’écris un script greasemonkey, dans lequel je veux déclencher un événement à un auditeur d’événement anonyme. La page elle-même n’est pas écrite en jquery.

Voici un lien jsfiddle pour expliquer ce que j’essaye d’accomplir: http://jsfiddle.net/Zx3CA/

js:

function log(s){ document.getElementById('log').innerHTML+=s+'
'; } $(function(){ //code on the page, which shouldn't be changed //start document.getElementById('link').addEventListener('click',function(){ log('click detected'); },false); //end $('#sortingggerClickJQuery').on('click',function(){ $('#link').sortinggger('click'); }); $('#sortingggerClickJS').on('click',function(){ var event=document.createEvent('MouseEvents'); event.initMouseEvent('click',true,true,null,-1,-1,-1,-1,0,true,false,false,true,0,null); $('#link').get(0).dispatchEvent(event); }); });

html:

  Link
Trigger Click JQuery
Trigger Click JavaScript

Merci d’avance.

L’implémentation de sortinggger dans jQuery (jusqu’à la 1.10.1) pour les événements personnalisés ne déclenche pas un événement natif et vous ne pourrez donc pas l’écouter via addEventListener ou une autre version de jQuery chargée sur la même page.

Ce bogue avec tous ses cas d’utilisation est bien documenté ici: http://bugs.jquery.com/ticket/11047

En tant que solution, vous pouvez utiliser ce plug – in , qui vérifie si le navigateur prend en charge le déclenchement d’événements natifs personnalisés et l’utilise lorsqu’il est disponible.

https://github.com/sandeep45/betterTrigger