2010-05-26 5 views
0

그래서 나는 아주 기본적인 질문이라고 생각하지만 내 삶에 대해 생각할 수 없다. 클릭 한 번으로 선택한 날짜 요소 (dom)를 어떻게 참조합니까? 나는 이것을 시도했다 :jquery ui datepicker onselect inst target

$("#eventCalendar").datepicker({ 
onSelect: function(dateText,inst){ 
    var activeDateObj = $("#eventCalendar").find('.ui-state-active'); 
} 
}); 

이것은 객체를 반환하지만 이전에 선택한 요소를 참조한다고 생각한다. 클래스에서와 같이 아직 새 요소에 적용되지 않았습니다. inst 객체가 클릭 된 요소에 대한 참조를 포함하지 않는다는 것에 정말 놀랐습니다. 이 메서드는 변수 선언 주위에 빠른 제한 시간을 래핑하여 작동하지만 꽤 더럽습니다. 더 좋은 방법이 있는지 알고 싶습니다. 미리 감사드립니다.

+0

무엇을하려고합니까? 'this'는 연관된 입력 필드를 나타냅니다. – Nalum

+0

죄송합니다. 나는 $ ("# eventCalendar")를 의미했다. find ('. ui-state-active'); 말이 돼? –

+0

선택한 요소를 가져온 후 원하는 작업을 하시겠습니까? – Elangovan

답변

1

있음 OP에 대한 의견에 응답.

캘린더에서 하루를 선택할 때마다 매월 날짜가 포함 된 표를 다시로드하는 것으로 보입니다. 따라서 월을 변경할 때도 마찬가지입니다.

.live('click',function(){...})을 사용하면이 기능을 추가 할 수 있습니다.

이 같은 선택 뭔가 최고의

//attached to an input, not displayed inline. 
$('#ui-datepicker-div .ui-datepicker table.ui-datepicker-calendar td[class!=ui-state-disabled]') 

이제 단지 선정 된 날짜 해결해야 할 수 있습니다 들어

.

+0

그래, 이건 나쁜 생각이 아니야. 왜 내가이 LOL을 놓 쳤는지 모르겠다. 그러나 "beforeShow"이벤트 또는 "beforeShowDay"이벤트로 같은 일을 수행 할 수 있는지 궁금하다. –

+1

beforeShowDay를 사용하면 특정 날짜에 대해 말하기 위해 사용할 수있는 툴팁을 표시 할 수 있지만 두 이벤트 중 어느 것도 내가 이해하는 것에서 오늘의 클릭 이벤트에 대한 기능을 설정할 수 없습니다. 나는 당신이 원하는 것을 정말로 모르지만 beforeShowDay는 당신이 원하는 것을 얻기에 충분할지도 모릅니다. – Nalum

+0

그러면 작동하지 않을 것입니다. 특정 날짜에 마우스를 올려 놓을 때 커서를 따라야하는 사용자 정의 빌드 설명이 있습니다. 이 대답의 방법은 트릭을 수행해야합니다. 단지 나에게 조금 미숙 한 것 같습니다. 왜 이런 종류의 빌트인 메소드가 없는지 궁금합니다. –

0

달력을 새로 얻었다 후에서는 setTimeout - 래퍼는 물건을 큐에

//... 
onSelect: function(date, inst) { 
    setTimeout(function() { 
     console.log($('a.ui-state-active')); // clicked day's DOM-Element 
    }, 0); 
} 

솔루션.