2012-04-19 4 views
0

풀 캘린더가 표시되고 이름 옆에 체크 박스가 표시된 리소스 목록이 있습니다. 그들은 체크 박스가 올바르게 표시하고 내가 그 (것)들과 아무 것도하지 않으면 그들이 정상적으로하는 것처럼 점검을받습니다. 하지만 jQuery로 fullcalendar를 호출하고 리소스를 추가하거나 제거 할 때 jquery/fullcalendar 함수를 실행 한 후 확인란의 선택을 취소합니다. 여기동적 체크 박스가 재설정 되나요?

내가 확인란 만드는 방법은 다음과 같습니다 관련 HTML을

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

을 추가/제거 내 함수입니다입니다

<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'); 
    } 
} 
관련 문제