Jquery ведет себя по-разному - PullRequest
1 голос
/ 24 марта 2012

Я пытаюсь разработать сборщик дат. Я готовлю весь календарь в строке JavaScript и добавляю его к элементу div. Проблема в том, что событие нажатия jQuery ведет себя по-другому. Если я напишу весь код в файле .js для события $(document).ready() и добавлю этот файл сценария в начало файла HTML, события щелчка не будут работать должным образом (имеется в виду, если я в марте, если я нажмите «Далее», календарь перейдет к следующему месяцу, апрель, но затем, когда я нажимаю на него, я всегда получаю старый месяц).

Если я напишу весь скрипт внизу html-файла (после тега body), он будет работать нормально.

Когда я помещаю этот код в jsFiddle. Там тоже работает. Я думаю, что они добавляют код скрипта внизу страницы.

Что может быть не так, если код находится в $(document).ready() обработчике событий? Вот ссылка jsFiddle .

1 Ответ

0 голосов
/ 24 марта 2012

Я предполагаю, что это происходит для вас в IE. Я был в состоянии воспроизвести это. Было показано, что браузер работает в «режиме причуд». В этом режиме функция indexOf для Array не определена. Эта ошибка JavaScript препятствует правильному функционированию средства выбора календаря. Отключение режима причуды исправило проблему.

Чтобы исправить, вы можете убедиться, что у вас есть правильный DOCTYPE, определенный для страницы, или метатег, такой как <meta http-equiv="X-UA-Compatible" content="IE=edge" />, который избегает режима причуд.

Я пока не уверен, почему перемещение скрипта вызывает разные режимы. Возможно, кто-то еще на SO знает ответ на этот вопрос.

...