Estoy ejecutando en asp.net con javascript y jquery. Tengo un javascript que se ejecuta en el documento listo que usa jquery para asignar algunos eventos de clic con la función .on. Está bien. También tengo una vista parcial que se carga después de alguna entrada del usuario que necesita la misma funcionalidad, por lo que estoy haciendo referencia al script nuevamente en la vista parcial, lo que hace que la función de documento listo se active nuevamente y asigna los eventos onclick para mis controles en el parcial vista. Eso funciona. Excepto que el problema es que obtengo dos eventos onclick para los controles en la página principal, lo que hace que el evento se active dos veces si hago clic en los controles de la página principal después de cargar la vista parcial. Intenté simplemente agregar un .off() en el bucle jquery para eliminar el evento antes de que se agregue, de modo que la segunda vez que se ejecute eliminaría el primero y agregaría uno nuevo, pero el evento no se elimina. También intenté reescribirlo para usar .addEventListener y .removeEventLister siguiendo el mismo patrón; eliminando antes de agregarlo, pero obtiene los mismos resultados.
Si pudiera consultar los detectores de eventos adjuntos actualmente, podría evitar fácilmente la segunda adición del evento onclick, pero mi investigación dice que no hay forma de hacerlo en javascript (aunque puede hacerlo en las herramientas de desarrollo de Chrome con getEventListeners()).
Entonces, ¿por qué no elimina el primer evento cuando hago .off() o .removeEventListener()? ¿Hay algún tipo de alcance como este script al que llamo dos veces, termina siendo dos instancias del script y no puede eliminar los detectores de eventos que se aplicaron con otro script? Esto es sólo una suposición.
Cualquier orientación sería útil, gracias.