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 знает ответ на этот вопрос.