tengo tabla con un registro de entrada, toda casilla de verificación en el encabezado que comprueba todas las casillas de verificación en la columna de la tabla:jQuery gatillo ('clic') no disparar caso .click en casilla
<input class="check-all" type="checkbox" id="masterCheck" />
Sin embargo, en una de mis páginas me gustaría verificar automáticamente la casilla de verificación de verificación en la carga de la página.
Para hacer esto he intentado disparar un gatillo ('clic') la función como la siguiente:
$(document).ready(function() {
if ($("#masterCheck").attr('checked')) {
} else {
$("#masterCheck").trigger('click');
}
});
Esto comprueba la casilla de verificación bien, pero no se dispara mi evento de clic personalizado para casillas de verificación con la clase .Comprobar todo (abajo):
$(function() {
$('.check-all').click(function() {
$(this).parents('table:eq(0)').find(':checkbox').attr('checked', this.checked);
});
});
también he intentado añadir un Javascript setTimeout, pensando que la función personalizada clic no estaba siendo cargado del todo todavía, pero todavía no lo hice disparar la función de clic personalizado después de esperar 1 , 2 y 3 segundos.
Al cargar la página, puedo desmarcar la casilla de verificación marcada previamente y volver a verificarla para marcar perfectamente todas las casillas de verificación de la columna.
¿Debo agregar algo especial a mi jQuery en el documento. Listo para permitir que active el evento de clic personalizado?
*** EDIT1:
Ok, he intentado añadir el evento personalizado botón derecho del ratón encima de la función document.ready en mi página para asegurarse de que está cargada (como el evento de clic personalizada anterior está en un maestro archivo .js utilizado en mi _Layout). Además de esto, modifiqué la clase de mi casilla de verificación para que se corresponda con mi nuevo evento de clic personalizado, de modo que no entre en conflicto con el de mi archivo .js principal.
<input class="check-allx" type="checkbox" id="masterCheck" />
// Check all checkboxes when the one in a table head is checked:
$(function() {
$('.check-allx').click(function() {
$(this).parents('table:eq(0)').find(':checkbox').attr('checked', this.checked);
alert(this);
});
});
// Check for unchecked masterCheck
$(document).ready(function() {
if ($("#masterCheck").attr('checked')) {
} else {
//$("#masterCheck").trigger('click');
$("#masterCheck").click();
}
});
Esto parece tirar mi alerta en el evento de clic a medida que es progreso, pero fue en vano hacer todas mis casillas de verificación como deberían. Nota: También cambié el disparador ('clic') a .click(), que ambos hacen lo mismo en mi situación.
Así como una prueba adicional para su posible teoría de que el controlador de eventos personalizado no puede definirse sin embargo, ¿ha intentado definir el controlador de clic personalizado directamente por encima de su cheque, sólo para hacer una versión mínima de ese problema? –
Ben: He intentado esto en EDIT1 arriba. Ahora está entrando en mi evento de clic personalizado, pero todas mis casillas de verificación siguen sin hacer clic como deberían. – Lando