2010-04-08 3 views
3

나는 여기에서 excrutiatingly하게 상술 될 예정이다. Firefox 3.6.3을 Max OSX에서 Firebug 1.5.3과 함께 사용하고 있습니다.이 클릭 핸들러가 실행되지 않는 이유를 디버그하려면 어떻게해야합니까?

두 버전의 프로젝트가 있습니다. 하나는 작동하고 하나는 버그가 있습니다. 하나는 다운로드했고 하나는 손으로 타이핑했습니다. 어느 것이 작동하지 않는지 짐작하십시오. 광산이 최신 버전의 jQuery를 사용하고 파일의 이름이 다르게 지정된다는 점을 제외하고는 동일해야합니다. jQuery 버전은 문제가되지 않습니다. 나는 오래된 jquery를 사용하고 새로운 jquery를 사용하게했다. 어느 쪽이든, 내 것은 여전히 ​​망가졌으며 다운로드 한 사람은 여전히 ​​작동합니다. 나는이 프로젝트가 어떻게 다른지 보려고 내 눈을 파열시켰다. 내가 싫어하는 유일한 방법은 작업 코드를 버려진 코드로 복사하는 것입니다. 왜냐하면 비슷한 문제를 일으키는 고유 한 코드 일 때이 정보를 찾아 낼 수 있어야하기 때문입니다.

내 코드에서 파이어 버그에서 볼 수있는 오류는 없습니다. 사실 2/3의 오류는 정상적으로 작동합니다. 두 번째 버튼은 아무 것도하지 않습니다. 그래서 나는 단계별로 나가기를 원했다. 이것들은 항상 안구 오류이고 나는 그것들을 보는 것을 정말로 빨아 먹는다.

공용 서버에 넣습니다. http://colleenweb.com/jqtests/ex71.html 그리고 ex71.js를 디버그하려고합니다

ex71.js에서 13 번째 줄에 중단 점을 설정하고 두 번째 버튼을 클릭하면 json 변수에 예상 값이 있습니다. 하지만 이걸 방화범이라면 결코 거기에 도착하지 않습니다. 나는 html로 끝났고 모든 것의 모든 이름이 일치하는 것 같습니다. 나는 또한 단추가 왜 정당화되지 않는지 궁금해하지만 그게 CSS 다. 내가 누락 된 것이 무엇인지, 그리고 더 중요한 것은 이러한 유형의 버그를 찾기 위해 사용할 수있는 도구/기술을 말해주십시오. api.jquery에서

+0

나는 = 콜백을했다? 그것은 새로운 jQuery가 필요로한다고 생각했기 때문입니다. 그러나 기쁨은 없습니다. 따옴표에 관해서는, 작업 예제에서는 json 파일에서 값을 둘러싼 작은 따옴표가 있으며 키 주위에는 따옴표가 전혀 없습니다. 나는 어쨌든 서버에서 두 배로 키와 값을 변경하고 문제를 해결했습니다. 그걸 알아내는 데 나이를 먹었을 것입니다. 그리고 저는 다시 json 파일에서 큰 따옴표를 사용하지 않을 것입니다. 답변을 주셔서 감사합니다. 두 가지 큰 가설. –

+0

@tixrus : JSON 파일을 만드는 데 사용하고있는 서버 측 기술 (이 예제에서는 수동으로 파일을 생성 한 것으로 생각됩니다)을 모르지만 적어도 PHP의'json_encode'는 유효한 JSON을 생성합니다. http : //php.net/json_encode –

답변

3

:

For example, all strings represented in JSON, whether they are properties or values, must be enclosed in double-quotes. For details on the JSON format, see http://json.org/.

당신이 들어오는 데이터의 구문이 정확 확실 해요?

+0

Nope : http://colleenweb.com/jqtests/ex71.json :'{company : 'Springfield Electronics', 제목 : 'Chief Widget Maker'} ' –

+0

빙고! 오랫동안 좀 더 길게 입력 해주세요. –

+0

그건 jQ의 한 버전에서 다른 버전으로의 이상한 작은 변화였습니다. 다행이 당신을 도왔습니다. – dclowd9901

1

사용중인 기능이 JSONP를 기다리고 있다고 생각합니다. 그것은 콜백 = 무엇입니까? 어쨌든 나타냅니다. 그걸두고 내려 봤어?

$.getJSON('ex71.json', function(json) { 
    $('input#tmpTitle').val(json.title); 
    $('input#tmpCompany').val(json.company); 
}); 

설명서의이 페이지는 콜백 = 아래의 메모에 설명되어 있습니다. 도메인 간 호출에 필요한 JSONP에 사용할 수 있습니다. 도메인 간 통화를하지 않으면 필요하지 않습니다. 상호 도메인 호출을 수행하는 경우 일반 JSON 대신 JSONP를 반환해야합니다 (실제 소리보다 훨씬 쉽습니다).

http://api.jquery.com/jQuery.getJSON/

관련 문제