Obtuve una función jQuery que detecta cambios en un campo de entrada y lo agrega a una variable.
El campo de entrada también se mantiene en una biblioteca de API basada en vanilla js, que no puedo convertir a jQuery. lib es una API de direcciones, por lo que las personas pueden seleccionar una dirección y eso no activará mi función jQuery. Por lo tanto, pensé en una solución alternativa, donde mi jQuery está mirando mi js de vainilla, para ver cuándo se activa y activar mi función jQuery inmediatamente después.
Mi función jQuery:
$('#billing_address_1').on('input',function(e){ let addressValue = $('#billing_address_1').val(); });Mi función js de vainilla:
"use strict" dawaAutocomplete.dawaAutocomplete( document.getElementById("billing_address_1"), { select: function(selected) { document.getElementById("valgtadresse").innerHTML = selected.tekst; } });Todas las soluciones que he podido buscar han requerido que use .trigger() en mi vanilla js en este caso. No se han creado para la combinación de estas dos alternativas js. ¿Puedo hacerlo de una manera más adecuada?
Si no desea tocar sus campos con el disparador, puede probar el patrón de emisor de eventos, que es bastante popular en el nodo. Aquí mantiene un objeto como notificador en el que llama al evento y también engancha a los oyentes para ese evento. Básicamente es un patrónPub-Sub , una implementación simple de la cual en javascript vainilla está disponible aquí por mudge o también puede probar cualquier alternativa si encuentra
// KEEP THIS SOMEWHERE IN OUTER SCOPE let bird = new EventEmitter() //THEN - hook on any event you name it bird.on('tweet', (val)=>{ console.log(val) addressValue = val }) //THEN - emit that named event wherever you might need dawaAutocomplete.dawaAutocomplete( document.getElementById("billing_address_1"), { select: function(selected) { document.getElementById("valgtadresse").innerHTML = selected.tekst; bird.emit('tweet', selected.tekst); } });