我在標籤內有複選框。當複選框被選中時,我需要標籤有一個類,但當它沒有時,不需要。我這個manged它:在點擊和頁面加載時運行功能?
$('label').click(function(){
if ($('input[type=checkbox]', this).is(':checked')) {
$(this).addClass('checked');
} else {
$(this).removeClass('checked');
}
});
但是在頁面加載時,如果一個複選框被選中可是沒有階級,因爲處理不當代碼尚未運行的標籤。
我喜歡把代碼放在一個函數中,然後調用它,但是下面的代碼不工作。我的代碼示例都已包裝在DOM中。
function checkFunc(){
if ($('input[type=checkbox]').is(':checked')) {
$(this).parent('label').addClass('checked');
} else {
$(this).parent('label').removeClass('checked');
}
}
checkFunc();
$('label').click(checkFunc);
我有語法錯誤,或者是我的代碼有根本錯誤嗎?
UPDATE香港專業教育學院試過如下:
function checkFunc(){
if ($('input[type=checkbox]', this).is(':checked')) {
$(this).parent('label').addClass('checked');
} else {
$(this).parent('label', this).removeClass('checked');
}
}
$('label').each(checkFunc).click(checkFunc);
當你用'checkFunc()'調用函數時,那麼'this'指的是'window',而不是'label'元素。 –
您可以將'this'作爲參數傳遞給函數^ –