Jquery ведет себя по-разному

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

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам