Javascript 正在重置动态复选框?
我有一个完整的日历显示和资源列表与复选框显示在他们的名字旁边。它们的复选框显示正确,如果我不处理它们,它们会像平常一样保持选中状态。但是,当我使用jquery调用fullcalendar并去添加或删除资源时,在运行jquery/fullcalendar函数后,复选框会自动取消选中 以下是我如何创建复选框:Javascript 正在重置动态复选框?,javascript,jquery,checkbox,fullcalendar,Javascript,Jquery,Checkbox,Fullcalendar,我有一个完整的日历显示和资源列表与复选框显示在他们的名字旁边。它们的复选框显示正确,如果我不处理它们,它们会像平常一样保持选中状态。但是,当我使用jquery调用fullcalendar并去添加或删除资源时,在运行jquery/fullcalendar函数后,复选框会自动取消选中 以下是我如何创建复选框: $(document).ready(function() { for(p in dsnrs){ $('#specialists').append(
$(document).ready(function() {
for(p in dsnrs){
$('#specialists').append(
'<input type="checkbox" name="designer" id="' + dsnrs[p].name +'" onChange="addOrRem(dsnrs['+p+'] )" />' +dsnrs[p].name+ '<br />');
}
});
下面是相关的HTML
<div id='designersbox' style='float:left;margin-top:5px'>
<div id='specialists' onload='specList()'></div>
<a href="#" onClick="addRes()">Add resource</a>
<a href="#" onClick="remRes()">Remove resource</a>
</div>
<div id='calbox' style="width:1000px;height:900px;position:relative;float:left;margin-bottom:10px; padding:10px">
<div id='calendar' style="float:left;height:1000px;width:1000px;"></div>
</div>
我不太清楚为什么复选框会被重置。如果我注释掉对add/remove函数的调用,然后只执行警报,它们就可以正常工作。任何帮助或线索都将不胜感激。添加了一个var,checked=document.getElementByIdspec.name.checked 似乎解决了这个问题。我不确定它为什么会工作,但是用checked==true/false替换if语句而不是不使用变量解决了这个问题 新功能:
function addOrRem(spec){
//$(":checkbox[value=designer]").attr("checked", true);
//alert("Specialist: " + spec.name + ", Checked: " +document.getElementById(spec.name).checked);
var checked = document.getElementById(spec.name).checked;
if(checked==true){
remRes(spec.id, '#calendard');
addRes(spec, '#calendard') ;
}if(checked==false){
remRes(spec.id, '#calendard');
}
}
function addOrRem(spec){
//$(":checkbox[value=designer]").attr("checked", true);
//alert("Specialist: " + spec.name + ", Checked: " +document.getElementById(spec.name).checked);
var checked = document.getElementById(spec.name).checked;
if(checked==true){
remRes(spec.id, '#calendard');
addRes(spec, '#calendard') ;
}if(checked==false){
remRes(spec.id, '#calendard');
}
}