En mi código, estoy configurando un detector de cambios en mis casillas de verificación aquí
$(".section").change(function() { if($(this).is(":checked")) { $("." + this.id).show(); ...Ahora estoy tratando de hacer un clic "controlado por código" en la casilla de verificación, y tengo
$(".secTitle").click(function(e) { var elem = this; while(elem) { if (elem.className && elem.className.indexOf ('DOC_SECTION') != -1) { var clzes = elem.className.split(" "); var clzIdx = 1; if (elem.getAttribute('closeSecClassIdx')) { clzIdx = parseInt(elem.getAttribute('closeSecClassIdx')); } var chk = document.getElementById(clzes[clzIdx]); chk.checked = false; alert(chk.onchange); //chk.changed(); break; } else { elem = elem.parentNode; } } }); Sé que tengo el elemento correcto, como chk.checked = false; está funcionando correctamente. Después de eso, estoy tratando de invocar el método de cambio establecido anteriormente, pero mi alerta muestra "indefinido".
Puede desencadenar el evento de change llamando a $(chk).change() . A continuación, he creado un pequeño prototipo que muestra el enlace al evento de change y lo invoca.
jQuery(function($) { // bind to the change event $("input").change(function() { console.log('change triggered!'); }); // now trigger it $("input").change(); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" />