У меня происходит странное поведение, с которым я не могу справиться. Я написал некоторый код для добавления некоторых функций в список, содержащий метки и флажки. Если у пользователя включен javascript, я хочу, чтобы флажки были скрыты, а ярлыки стали активными и меняли их внешний вид, чтобы указать, были ли они выбраны.
Вот код:
$(".cal_checkbox").each(function(){
$(this).hide();
var id = $(this).attr('id');
if($(this).attr('checked'))
{
$('#cal_checkbox_'+id).css({"font-weight":"bold"}).css({'color':'#7C001D'}) // make bold and red if selected
.click(function(){
$(this).attr('checked', false)
})
}
else
{
$('#cal_checkbox_'+id).click(function(){
$(this).attr('checked', true)
})
}});
Это работает нормально, если я закомментирую строку hide (), т.е. если флажки видны, вы все равно можете нажимать на ярлыки, и все меняется и работает. Однако, если я оставлю скрытую () и флажки станут невидимыми, все это перестает работать. Я думал, что hide () просто визуализирует выбранный элемент так же, как «display: none;». Это полностью удаляет элемент?