2010-05-16 4 views
2

jQuery 기반의 todo 목록 인터페이스에서 작업 중이며 약간의 벽에 부딪혔다. 내가 작업하고있는 jQuery는 내가 초보자 인 것처럼 다양한 튜토리얼에서 해킹 된 것입니다. jQuery 체크 박스 오류

$('#todo input:checkbox').click(function(){ 
    var id = this.attr("value"); 
    if(!$(this).is(":checked")) { 
    alert("Starting."); 
    $.ajax({ 
     type: "GET", 
     url: "/todos/check/"+id, 
     success: function(){ 
     alert("It worked.") 
     } 
    }); 
    } 
}) 

이에 어떤 도움을 크게 감상 할 수

<div id="todo"> 
    <input type="checkbox" checked="yes" value="1"> Hello, world. <br /> 
</div> 

내가 사용하고있는 HTML이다. 참고로, 나는 jQuery에서 디버깅을위한 알림을 받았다. 코드가 작동하지 않는다고 말할 수있는 이유는 이러한 경고가 표시되지 않기 때문입니다. 감사.

답변

3

간략히 살펴보면 if(!$(this).is(":checked")) 부분이 문제 일 수 있다고 생각합니다. 더 많은 것을 시도하십시오 if(!$(this).attr('checked'))

또한 : 당신의 ajax 계산서에있는 URL는 바르게 보지 않는다. 그것은 나에게 상대적 하나가 아닌 절대 경로 인 것처럼 보입니다.

한 가지 더 : var id = this.attr("value");var id = $(this).attr("value");이 아니어야합니까?

이 도움말이 도움이되는지 알려주세요. 그렇지 않으면 일반적인 팁 :

코드에서 세 가지를 동시에 테스트하는 것으로 보입니다. 먼저 이벤트를 올바른 체크 박스에 첨부해야합니다. 그런 다음 조건을 통과해야하며 성공적인 아약스 호출을 수행해야합니다. 세 가지가 모두 작동하면 피드백 만받습니다. 그렇지 않으면 오류가 발생한 곳을 알 수있는 방법이 없습니다. 각 작품을 테스트하여 효과가 있는지 확인한 다음 어디에서 노력을 집중해야하는지 알 수 있습니다. :-)

+0

정말 고마워. 나는 주요 오류가 그것이 $ (this) 오류 대 파산되었다고 생각한다. –

+0

@zach ah. 네, 항상 그 하나를 그리워합니다. –