Я хочу показать/скрыть флажок, проверив, установлен ли первый флажок.
Код:
$j('#main_share').bind("click", function() {
if( $j(this).is(':checked') ) {
//check ext_share box
$j('#allow_ext_share').attr('checked', true);
//show ext_share box
$j('#ext_share_li').show();
} else {
//hide ext_share box
$j('#ext_share_li').hide();
//uncheck ext_share box
$j('#allow_ext_share').attr('checked', false);
}
});
Когда я сниму флажок, все работает так, как ожидалось, но если я перепроверяю его, флажок будет отображаться снова, но не будет проверен?
ВОПРОС: Как установить флажок, когда он снова появится.
Вы должны использовать prop вместо attr:
$j('#allow_ext_share').prop('checked', true);
//Later
$j('#allow_ext_share').prop('checked', false);
Также можно уменьшить код:
$j('#main_share').bind("click", function() {
$j('#allow_ext_share').prop('checked', this.checked);
$j('#ext_share_li').toggle(this.checked);
});
Измените attr
на prop
$j('#allow_ext_share').prop('checked', true);
.prop()
вместо$j('#allow_ext_share').prop('checked', true);