Écoutez jQuery Event With Vanilla JS

J’essaie donc de déterminer s’il est possible d’écouter les événements ajoutés avec jQuery à l’aide de JS vanilla. J’ai trouvé cette question:

Écouter un événement jQuery sans jQuery

ce qui répond définitivement à la version 1 de jQuery. Que diriez-vous de la version 3 cependant?

J’ai mis au point un violon à tester, mais je ne parviens pas à faire en sorte que le premier envoi fonctionne avec une version de jQuery. Est-ce que quelque chose me manque ou le modèle d’événement dans jQuery 3 n’utilise-t-il toujours pas le modèle d’événement DOM?

https://jsfiddle.net/ydej5qer/1/

Voici le code dans le violon:

HTML:

This is div1. My event was added via jQuery and is listened for by vanilla JS.

Enter the number 2 to have the event fired.

This is div2. My event was added via vanilla JS and is listened for by jQuery.

Enter the number 2 to have the event fired.

JavaScript:

 var $input1 = $("#input1"); var $input2 = $("#input2"); var input1 = document.getElementById("input1"); var input2 = document.getElementById("input2"); var event1 = "civicscienceEvent1"; var event2 = "civicscienceEvent2"; $("#button1").click(function() { if (+$input1.val() == 2) { $input1.sortinggger(event1, {message: "Event 1 sortingggered!"}); } }); input1.addEventListener(event1, function(e) { console.log("Event 1 sortingggered! message=" + e.detail.message); }); $("#button2").click(function() { if (+$input2.val() == 2) { var event = new CustomEvent(event2, {detail: {message: "Event 2 sortingggered!"}}); input2.dispatchEvent(event); } }); $input2.on(event2, function(e) { console.log("Event 2 fired, but I don't know how to get the message!"); }); 

La réponse courte est que cela est impossible car jQuery fournit une couche d’événement sur JS vanille. Cela signifie que JS vanilla ne peut pas parler à cette couche ajoutée.

En résumé, jQuery peut capturer les événements JS vanilles, mais JS vanille ne peut pas capturer les événements jQuery ajoutés.