2009-12-30 2 views
0

이 간단한 시간 선택기 앱을 만들었지 만 어떤 이유로이 코드 스 니펫이 작동하지 않습니다. 나는 그것을 작동시켰다 (어쩌면 그것은 나의 상상이었다).누군가 내 jQuery 라이브 메소드의 문제점을 말해 줄 수 있습니까?

4 개의 라디오 버튼이 있습니다. jquery의 라이브 메소드를 사용하여 각 버튼에 클릭 이벤트가 첨부 된 상태에서 DIV를 표시하고 다른 DIV를 숨 깁니다. 나 또한 (나는 생각했다.) 새롭게 보여지는 DIV에 플러그인의 메소드를 추가했다.

아래 링크를 살펴보면 무슨 뜻인지 알 수 있습니다. 첫 번째 DIV는 작동하지만 후속 DIV는 작동하지 않습니다. 내가 뭘 놓치고 있니?

감사합니다.

http://jsbin.com/ebige3

+0

코드를 추가하세요 우리가 더 쉽게 검토 할 수 있도록 게시물에. –

+0

라이브 메소드는 작업을 수행하고 있으며, div를 숨기고 표시하고, 방화 광을 사용하여 html을보고 소스의 변경 사항을 강조 표시합니다. – ryudice

+0

@Nathan : 코드가 메시지의 링크에 있습니다. – Loony2nz

답변

1

은 당신의 코드에 문제의 무리가 있습니다. 예를 들어 ID는 starttimeendtime 인 텍스트 상자가 여러 개 있지만 ID는 문서에서 한 번만 나타납니다. 문제의 원인은 무엇

어떤 라디오 버튼의 클릭시에, timepicker$("#starttime, #endtime") 선택 일치 모든 요소 초기화됩니다 사실이다. 이것은 첫 번째로 div (보이는 것)을 의미하고, 정상적으로 작동하고, 선택 필드는 올바르게 배치되지만, div의 경우 해당 필드가 연결된 div가 숨겨져있는 위치에 배치됩니다. 그러한 위치는 계산 될 수 없다.

div의 코드가 "daily"와 "weekly"가 아닌 "recur1", "recur2"등의 id를 가지도록 변경하는 것이 좋습니다. 또한 클래스에 " 되풀이하다 ". 그럼 당신은 모든 경우 명령문을 제거 할 수 있습니다 그냥 수행

$('.recur').hide(); 
$('#recur'+recurType).show(); 
그것은 또한 당신의 문제를 해결할 수있는,이 작업을 수행 할 수 있도록합니다

:

$('#recur'+recurType).find("#starttime, #endtime").timePicker({ ... }); 
+0

감사합니다. David. 나는 그것을 시도 할 것이다. – Loony2nz

+0

내가 말했듯이, 당신은 또한'ids * '가 아닌'starttime'과'endtime' * 클래스를 만들고 싶습니다. 일단 마지막 선택기를'$ ('recur'+ recurType) .find ('. starttime, .endtime')' –

+0

@David : yes!로 편집하면됩니다. 그 일은 굉장히 잘됐다! 너무 많이 내 코드를 축소. 당신은 하나 이상의 체크 표시를 할 자격이 있습니다. 보다 효율적인 코더에 대해 이해해 주셔서 감사합니다. – Loony2nz

관련 문제