2011-03-08 4 views
0

onChangeMonthYear 콜백 함수가 실행될 때 .datepicker('disable') 메서드를 사용하여 인라인 날짜 피킹을 비활성화하려고합니다.
이 함수는 (날짜를 가져 오는 데) AJAX 호출을 만들고 성공 후 datepicker를 다시 활성화합니다.jQuery UI Datepicker가 AJAX 호출시 비활성화 됨

불행하게도, .datepicker('disable')가 결코 발생하지 ...

은 분명히, 어떤 깊은 방화범으로 파고 후, 내부 _disableDatepicker가 호출되지만 클래스 hasDatePicker이 발견되지 않습니다 따라서 기능은 초기 반환합니다.

전역 개체에 콜백 함수를 캡슐화했지만 코드의 동작에 영향을 미치지 않습니다.

onChangeMonthYear에는 세 번째 매개 변수 인 inst이 있습니다.이 매개 변수는 datepicker 요소를 나타냅니다. 그래서 $(inst) 호출을 통해 액세스해야합니다.

당신은 여기에서 제거 된 코드의 일부와 getEventsForDate 기능이 http://jsbin.com/ahano4/6/edit

답변

0

영향을주고 자하는 실제 요소로 활성화/비활성화를 호출 할 필요가 없습니까?

$(inst).datepicker('disable');//generic and not referring to anything in the DOM 
should be 
$('#calendar').datepicker('disable');//referring to the datepicker object in the DIV with the ID 'calendar' 
+0

그래서'inst' 매개 변수는 무엇에 좋은가요? 예 : 여러 개의 datepickers? 이것은 작동하는 것으로 보이지만 Chrome이 datepicker를 사용 중지하지 않았기 때문에 Chrome이 여기에서 도움이되지 않습니다! – ant1j

0

에 전체 코드를 찾을 수 있습니다. 여기

this.getEventsForDate = function(year, month, inst) { 
    ... 
    $(inst).datepicker('disable'); 
    ... 
}; 

그리고

는 DOM 당신은 세 번째 매개 변수로 함수에 빈 개체 {}를 통과 한 다음에 .datepicker() 함수를 호출

$(function() { 
    var date = new Date(); 
    Calendar.getEventsForDate(date.getFullYear(), date.getMonth()+1, {}); 
    ... 
}); 

을로드 된 후 실행되는 코드입니다. 이것은 분명히 유용하지 않습니다.

+0

나는 FatherStorm 답변을 사용하여 변경했습니다. 이것은 현재 달의 값을 시작하기위한 것입니다. – ant1j

관련 문제