Как я могу отладить, почему этот обработчик кликов никогда не срабатывает? - PullRequest
3 голосов
/ 08 апреля 2010

Я собираюсь быть чрезвычайно подробно здесь. Я использую Firefox 3.6.3 на Max OSX с Firebug 1.5.3.

У меня есть две версии проекта, одна из которых работает, а другая - с ошибкой. Один я скачал, а другой набрал вручную. Догадайся, какой из них не работает. Они должны быть одинаковыми за исключением того, что моя использует более новую версию jQuery, а файлы имеют разные имена. Версия jQuery не является проблемой. Я заставил мой использовать более старый jquery, а рабочий заставил использовать более новый jquery. В любом случае, мой все еще сломался, и загруженный все еще работает. Я закрыл глаза, пытаясь понять, чем эти проекты отличаются. Единственное, что я не хочу делать, - это скопировать рабочий код в перевернутый код, потому что мне нужно иметь возможность разобраться в этом, когда это мой собственный уникальный код, вызывающий подобные проблемы.

В моем коде нет ошибок, которые я вижу в Firebug, фактически, 2/3 из них работает просто отлично. просто вторая кнопка ничего не делает. Поэтому я хотел сделать шаг вперед. Это всегда ошибки глазного яблока, и я действительно ужасен, увидев их.

Я поставил его на публичный сервер. http://colleenweb.com/jqtests/ex71.html И я хочу отладить ex71.js

Если вы включили рабочую и установили точку останова в строке 13 в ex71.js, переменная json будет иметь ожидаемые значения при нажатии на вторую кнопку. Но если ты подожжешь этого, он никогда не попадет туда. Я был над HTML, и все имена, кажется, совпадают. Я также удивляюсь, почему кнопки не выровнены правильно, но это вещь CSS. Пожалуйста, скажите мне, что мне не хватает, и что более важно, какой инструмент / технику я мог бы использовать, чтобы найти ошибки такого типа.

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Из api.jquery:

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/.

Вы уверены, что входящие данные синтаксически точны?

1 голос
/ 08 апреля 2010

Я думаю, что используемая вами функция ожидает JSONP. Это то, что обратный вызов =? указывает в любом случае. Вы пытались оставить его?

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

На этой странице документации в записке частично объясняется, что обратный вызов =? может использоваться для JSONP, который необходим для междоменных вызовов. Если вы не делаете междоменный вызов, тогда он вам не нужен. Если вы делаете междоменный вызов, вам нужно вернуть JSONP вместо обычного JSON (что на самом деле намного проще, чем кажется).

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

...