JQuery hide()并选中复选框
我有一些奇怪的行为,我搞不懂。我编写了一些代码,将一些功能添加到包含标签和复选框的列表中。如果用户启用了javascript,我希望复选框被隐藏,标签可以点击,并改变它们的外观以指示它们是否被选中。 代码如下:JQuery hide()并选中复选框,jquery,checkbox,hide,Jquery,Checkbox,Hide,我有一些奇怪的行为,我搞不懂。我编写了一些代码,将一些功能添加到包含标签和复选框的列表中。如果用户启用了javascript,我希望复选框被隐藏,标签可以点击,并改变它们的外观以指示它们是否被选中。 代码如下: $(".cal_checkbox").each(function(){ $(this).hide(); var id = $(this).attr('id'); if($(this).attr('checked')) { $('#cal_checkbox_'+id).cs
$(".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()保留在中,并且复选框变为不可见,则整个过程将停止工作。我认为hide()只是以与“display:none;”相同的方式呈现所选元素。它是否完全删除了元素?在您的单击函数中,“this”的上下文将被分配给“#cal_checkbox_'+id”元素(我假设它是复选框旁边标签的id hide()只是将display css属性更新为none。它不会从DOM中删除元素 如果您使用HTML元素作为复选框标签,那么这可能解释了为什么隐藏复选框时会出现混乱
你可以发布你的HTML和javascript吗?你可以澄清“停止工作”吗?在预期功能方面有什么变化吗?我的意思是点击标签什么都不做。复选框是隐藏的,如果复选框被选中,标签的css也会改变。你可以发布HTML吗?