2012-12-11 3 views
0

이 참조기본 이벤트

<script type='text/javascript'> 

    $(document).ready(function() { 

     var date = new Date(); 
     var d = date.getDate(); 
     var m = date.getMonth(); 
     var y = date.getFullYear(); 

     $('#calendar').fullCalendar({ 

      editable: true, 

      eventDrop: function(calEvent,dayDelta,minuteDelta,allDay,revetFunc) { 
       var stDate = $.fullCalendar.formatDate(calEvent.start, 'dd-MM-yyyyy'); 
       $.post('event_update.php',{'allday':allDay, 'event':calEvent.id, 'start':stDate}, function(response){ 
        if(response.length > 0){ 
         alert(response); 
         revertFunc(); 
        } 
      }); 
      }, 

      loading: function(bool) { 
       if (bool) $('#loading').show(); 
       else $('#loading').hide(); 
      } 

     }); 

     $('#project').change(function() { 
      var filter = $('#project').val(); 
      $('#calendar').fullCalendar('removeEvents'); 
      $('#calendar').fullCalendar('addEventSource', 'json-events.php?filter='+filter); 
      $('#calendar').fullCalendar('rerenderEvents'); 
     }); 

    }); 

</script> 

시나리오 1의 코드를 확인하십시오 : onChange가 기능을 구현하기 전에

, 전체 일정은 모든 이벤트를 표시합니다.

시나리오 2 : 사용자가 필터 옵션을 변경 한 경우

onchange를 기능 (이벤트 필터)의 구현 후에는 이벤트를 표시합니다. 기본적으로 이벤트는 표시되지 않습니다. 제발 조언을 내게 고칠 방법

+0

검사에게 개발자 도구를 확인하고 볼 수있는 이벤트 소스를 제거하고 추가하지 않고 필터 매개 변수를 변경하려면? –

+0

이 코드는 맞춤식입니까, 확장 기능입니까? 당신이 가지고있는 문제를 해결하기 위해 무엇이라도 시도 했습니까? 나는 아직도 약간 혼란 스럽습니다. 좀 더 자세히 설명해 주시겠습니까 – Lodder

+0

@Lodder $ ('# project')을 (를) 제거한 경우 변경 (function() { var filter = $ ('# project') .Val(); $ ('# calendar' fullCalendar ('addEventSource', 'json-events.php? filter ='+ filter); $ ('# calendar'). fullCalendar ('removeEvents' rerenderEvents '); }); 그런 다음 fullcalendar는 기본적으로 모든 이벤트를 표시합니다. – nkdweb

답변

0

귀하의 캘린더는 처음에 이벤트 소스가 없습니다. 달력은 처음에 모든 이벤트를 표시하려면

events: json-events.php?filter='+filter 
+0

답장을 보내 주셔서 감사합니다. 그러나 작동하지 않습니다! $ ('# project'). (function() {var filter = $ ('# project')} $ ('# calendar') fullCalendar ('removeEvents'); fullCalendar ('addEventSource', 'json-events.php? filter ='+ filter); $ ('# calendar'). fullCalendar ('rerenderEvents');}); 그러면 fullcalendar가 표시됩니다. 기본적으로 모든 이벤트가 표시됩니다. – nkdweb

+0

이벤트 소스를 정의하는 위치가 표시되지 않습니다. 그렇다면 기본적으로 모든 이벤트를 표시 할 수 있습니까? –

0

이 (시나리오 1?) 당신이 이벤트 매개 변수가 필요합니다 :

$('#calendar').fullCalendar('addEventSource', 'json-events.php?filter='+filter); 

를 제거하고 대신은 초기화에 넣어 fullcalendar를 초기화 할 때 (또는 수동으로 change 이벤트를 호출 할 때). 변경 이벤트가 발생할 때까지 변경 필터가 호출되지 않으므로 페이지가로드 될 때 달력이 비어있게됩니다.

$('#calendar').fullCalendar({ 
    ... 
    events: json-events.php?filter='+filter 
}); 

변화에 이벤트가 작동해야하지만 addEventSource이 알아서해야로서 AFIK 당신은 rerenderEvents 제거 할 수 있습니다.

당신이 다시 요청에 올바른 데이터를 가져 오는 경우마다 this previous answer

관련 문제