2012-04-19 3 views
0

У меня отображается полный календар и список ресурсов с флажками, отображаемыми рядом с их именем. У них флажки отображаются правильно, и если я ничего не сделаю с ними, они останутся проверенными, как обычно. Но, когда я вызываю fullcalendar с jquery и перехожу к добавлению или удалению ресурса, флажки снижают галочку после запуска функций jquery/fullcalendar.Динамические флажки сбрасываются?

вот как я создать флажков:

$(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 />'); 
     } 
}); 

А вот мои функции для добавления/удаления ресурсов календаря

function addOrRem(spec){ 
    //alert("Specialist: " + spec.name + ", Checked: " +document.getElementById(spec.name).checked); 
    if(document.getElementById(spec.name).checked==true){ 
     remRes(spec.id); 
     addRes(spec); 
    }if(document.getElementById(spec.name).checked=false){ 
     remRes(spec.id); 
    } 
} 
function addRes(spec) { 
    $('#calendar').fullCalendar('addEventResource', spec); 
} 

function remRes(id) { 
    $('#calendar').fullCalendar('removeEventResource', id); 
} 

Вот соответствующий 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> 

Я не уверен, почему сбрасываются флажки. Если я прокомментирую вызовы функций добавления/удаления и просто сделаю предупреждение, они будут работать нормально. Любая помощь или подсказки будут высоко оценены.

ответ

0

добавлено var, checked = document.getElementById (spec.name) .checked;

Возможно, проблема решена. Я не уверен, почему он работает, но заменяя операторы if с помощью check == true/false вместо того, чтобы не использовать переменную, исправленную проблему.

новая функция:

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'); 
    } 
} 
Смежные вопросы