。點擊事件我有表頭中具有一個檢查所有的複選框,檢查表中的該列的所有複選框:jQuery的觸發器(「點擊」)不開火複選框
<input class="check-all" type="checkbox" id="masterCheck" />
然而,在我的其中一頁上,我想在頁面加載時自動檢查全選複選框。
要做到這一點,我已經嘗試引發觸發器(「點擊」)功能類似下面:
$(document).ready(function() {
if ($("#masterCheck").attr('checked')) {
} else {
$("#masterCheck").trigger('click');
}
});
這將檢查罰款的複選框,但不火的複選框我的自定義點擊事件與類。檢查 - 所有(下):
$(function() {
$('.check-all').click(function() {
$(this).parents('table:eq(0)').find(':checkbox').attr('checked', this.checked);
});
});
我也嘗試添加一個Javascript的setTimeout,以爲自定義點擊功能沒有被加載相當尚未,但它仍然沒有等待1後觸發自定義點擊功能,2和3秒。
在頁面加載後,我可以取消選中預先選中的複選框,然後重新選中該複選框以完美地檢查列中的所有複選框。
我是否必須在Document.ready上的jQuery上添加一些特殊的東西來允許它觸發自定義點擊事件?
*** EDIT1:
好吧,我已經嘗試我的頁面上添加正上方的document.ready函數的定義點擊事件,以確保它的加載(如前面定義點擊事件是在主.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')更改爲.click(),它們在我的情況下都做同樣的事情。
正如你可能理論進一步測試自定義事件處理程序可能還沒有被定義的,你想你的支票上面直接定義自定義單擊處理程序,只是爲了讓這個問題的一個最小的版本? –
Ben:我在上面的EDIT1中試過這個。它現在正在進入我的自定義點擊事件,但我所有的複選框仍然沒有按照他們的要求點擊。 – Lando