У меня есть таблица с флажком check-all в заголовке, который проверяет все флажки в этом столбце таблицы:
<input class="check-all" type="checkbox" id="masterCheck" />
Однако на одной из моих страниц я хочу автоматически проверить флажок check-all на загрузке страницы.
Для этого я попытался запустить триггер ('click'), как показано ниже:
$(document).ready(function () {
if ($("#masterCheck").attr('checked')) {
} else {
$("#masterCheck").trigger('click');
}
});
Это проверяет флажок в порядке, но не запускает мое пользовательское событие click для флажков с классом .check-all (ниже):
$(function () {
$('.check-all').click(function () {
$(this).parents('table:eq(0)').find(':checkbox').attr('checked', this.checked);
});
});
Я также попробовал добавить Javascript setTimeout, считая, что пользовательская функция щелчка еще не загружалась, но по-прежнему не запускала пользовательскую функцию щелчка после ожидания 1, 2 и 3 секунды.
При загрузке страницы я могу снять флажок и проверить его, чтобы проверить все флажки в столбце.
Должен ли я добавить что-то особенное в мой jQuery на Document.ready, чтобы он мог запускать пользовательское событие click?
*** EDIT1:
Хорошо, я попытался добавить пользовательское событие click прямо над функцией document.ready на моей странице, чтобы обеспечить его загрузку (поскольку предыдущее пользовательское событие click находится в файле .js мастера, который используется в моем _Layout). В дополнение к этому, я изменил класс моего флажка, чтобы соответствовать моему новому пользовательскому клик-событию, поэтому я не конфликтую с тем, что находится в моем главном файле .js.
<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();
}
});
Кажется, что мое предупреждение появляется в пользовательском событии клика, который является прогрессом, но безрезультатно все мои флажки проверяются так, как должны. Примечание. Я также сменил триггер ('click') на .click(), которые оба делают то же самое в моей ситуации.