2012-04-19 5 views
0

私はフルカレンダーを表示し、その名前の隣にチェックボックスが表示されたリソースのリストを持っています。チェックボックスは正しく表示されます。もし何もしなければ、通常どおりチェックされます。しかし、jqueryでfullcalendarを呼び出してリソースを追加または削除すると、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文をchecked == 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'); 
    } 
}