2010-02-10 2 views
1

모달 대화 상자를 생성하는 스크립트가 있고 그 안에 jquery ui datepicker를 넣으려고합니다. 잘 나는 대화 상자를 열고 '날짜 선택기'ID를 할당 된 입력 상자를 클릭 처음 작동첫 번째로드 후 jQuery datePicker for ajax 콘텐츠가 실패합니다.

$('#datepicker').live('click', function() { 
    $(this).datepicker({showOn:'both'}).focus(); 
}); 

: 저는 현재 다음과 같은 코드를 사용하고 있습니다.

문제는 DOM에서 해당 마크 업을 제거한 대화 상자를 닫은 후 다시 열면 해당 문제가 더 이상 작동하지 않는다는 것입니다.

$ ('# datepicker')를 호출 해 보았습니다. 대화창을 닫은 다음 die를 다시 열면 #datepicker 입력에 다시 바인딩되지만 die()도 작동하지 않습니다.

나는 정말이 문제에 난처합니다. 어떤 통찰력이라도 대단히 감사하겠습니다.

+0

한 가지를 조심 : 당신이 문제가 발생할 수 있습니다 대화 상자에 동적 콘텐츠를로드 할 때 "날짜 선택기"와 같은 간단한 식별자를 사용하여. 예를 들어 두 개의 대화 상자가 있고 둘 다 datepicker가있는 경우 "datepicker"의 "id"가있는 페이지의 두 가지로 마무리됩니다. 나는 여기에서 경험으로 말합니다 :-) 그 외에도 자세한 내용이 담긴 예제를 보지 않고서는 말하기가 어렵습니다. – Pointy

답변

0

내 생각에 DOM에서 트리거 요소를 제거하는 것이 문제입니다. 왜 그냥 hide 귀하의 모달 창 다음 show해야 할 때? 나는 그것이 귀하의 문제를 해결할 것이라고 믿습니다.

+0

모달 창을 트리거하는 내용도 변경되고 모달 대화 상자의 내용은 부모 내용 + 백 엔드의 xml에 따라 다르기 때문에 불행히도 실제로는 옵션이 아닙니다. 우리가 필요할 때마다 대화 상자를 다시 생성하는 것이 더 쉽습니다. 나는 그것이 복잡하게 들리는 것을 알고 있습니다. 그리고 그것은 우리의 일종이지만, 슬프게도, 제가 통제 할 수없는 범위 내에서 일해야만하는 매우 엄격한 경계가 있습니다. 당신은 나에게 아이디어를주었습니다. #datepicker 입력을 DOM 내에서 이미 존재하는 (숨겨진) 것으로 바꾸고 그 트릭을 수행하는지 확인해 보겠습니다. 감사합니다. –

0

DOM에 #datepicker가 한 번만 있었지만 ID 대신 클래스 ('#datepicker'대신 '.datepicker')를 사용하여 문제가 해결되었습니다.

그 외에도 .datepicker 클래스가 추가 된 숨겨진 입력이있는 경우에만 작동합니다.

그래서 그것은 그것을 고친 두 가지 제안의 조합이었습니다.

두 분 모두 도와 주셔서 감사합니다.

+0

삽입 된 태그를 삽입 한 후에 javascript가 실행되지 않기 때문에이 기능이 작동하지 않는 것 같습니다. –

1

오늘 도움이되었습니다. 나는 똑같은 문제가 있었다. 같은 요소를 대화 상자에서 ID로 다시 초기화했습니다. 처음에는 대화 상자를 가져 와서 작동 시켰습니다. 그 후에는 그렇지 않을 것입니다. 그래서, 단지 datepicker 클래스를 실행하면 $(".datepicker").datepicker()을 실행 한 후에, 대화 상자를 다시 열 때마다 문제가 해결되었습니다.

는 스타일 시트 즉이 클래스를 넣어 기억 :

.datepicker {} 
관련 문제