У меня есть следующий код внизу моей страницы (прямо перед тем, как закрыть тег body)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="/js/main.js"></script>
Я дважды проверил свой "источник просмотра", чтобы убедиться, что ссылки не сломаны, и все там, как должно быть.
В моем файле main.js
меня есть следующее:
$(document).ready(function(){
imp_init_fields();
});
function imp_init_fields() {
if( $('.datepicker')[0] ) {
$('.datepicker').datepicker();
}
}
Как вы можете видеть, ничего особенно сумасшедшего, просто настраивая дампикера, как я сделал это миллион раз.
Теперь, когда я перехожу на страницу, и я нажимаю на свой ввод текста, появляется всплывающее окно календаря. Однако, как только я пытаюсь взаимодействовать с календарем (месяц изменения, выбрать дату или что-то еще), ничего не происходит, и я получаю следующую ошибку:
Fire Fox:
Временная метка: 11/12/2012 2:15:31 PM Ошибка: TypeError: o не определено Исходный файл: http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js Линия: 9
Хром:
Uncaught TypeError: Невозможно прочитать настройки свойств неопределенных
Теперь я сделал это миллион раз, и поэтому считаю, что это действительно просто. Я подумал, может быть, у меня были противоречивые версии jquery и jquery-ui, но я пошел и загрузил устаревший код, и я получил ту же ошибку.
То, что я не понимаю, инициализируется datepicker, и я могу заставить его появляться при нажатии на поле ввода, но он ломается, как только я пытаюсь взаимодействовать с ним... Любая идея, что я делаю неправильно здесь?
Редактировать: я запускал его с помощью недопустимого кода.
Fire Fox:
Временная метка: 11/12/2012 2:34:45 PM Ошибка: TypeError: inst is undefined Исходный файл: http://code.jquery.com/ui/1.10.3/jquery-ui.js Линия: 8574
Линия 8574:
inst.selectedDay = inst.currentDay = $("a", td).html();
К сожалению, это не говорит мне многого. Я не делаю ничего особенного. У меня нет другого включенного javascript, это очень простая страница.
После @Melonheadjr44 опубликовала ссылку на jQuery datepicker возвращает ошибку "inst is null" при загрузке через AJAX, это заставило меня посмотреть, могу ли я иметь два идентификатора, которые конфликтуют на моей странице.
Оказывается, я сделал следующее:
<label id="client_since">Client since:</label>
<input type="text" id="client_since" name="client_since" class="datepicker" value="" />
Это может быть не очень ясно, но я случайно поменял атрибут "для" на моей метке "id". Поскольку jquery использовал идентификатор для ввода поля ввода, он фактически вытаскивал ярлык и не обнаруживал атрибуты/параметры, которые он ожидал найти.