2015-11-13 5 views
0

Теперь я смущен. На нашем веб-сайте в течение года уже были аккордеоны jQuery без каких-либо проблем. Он работал нормально до одного дня назад. Затем, без каких-либо изменений, сделанных с нашей стороны, аккордеоны больше не функционируют в IE11 и последнем Firefox. Однако последние Chrome и Safari отображают сайт правильно. Почти на каждой странице нашего сайта используются аккордеоны; вот один из них:Объект не поддерживает свойство или метод 'accordion'

http://www.americanaccents.com/napkin-color-tradition.html

Запуск Инструменты разработчика F12 в IE, я вижу сообщение «Объект не поддерживает свойство или метод„гармошки“.» Нарушившие строки коды (в частности, третья линии) являются:

<script> 
    $(function() { 
    $("#Accordion1").accordion({ 
     heightStyle: "content", 
     autoHeight: false 
    }); 
    }); 
</script> 

Любой идеей, что здесь происходит? Это приоритетная проблема, но я не знаю, куда еще обратиться.

ответ

3

Мне трудно поверить, что это произошло «без каких-либо изменений, сделанных с [вашего] конца».

your head tag

Вы загрузили JQuery в общей сложности три раза. Два из трех приходят после того, как вы загрузите свой аккордеон jQuery. Все они приходят после SpryAccordion. Когда загружается плагин, например jquery.ui.accordion, он прикрепляется к объекту jQuery - $. Когда вы загружаете другой скрипт jQuery, $ сбрасывается на экземпляр этого скрипта, исключая плагин.

Если это не изменилось, это почти невероятно, что это когда-либо срабатывало. Кто-то добавил два набора jQuery (среди других дублированных вещей) в конце вашего head. Если этот контент поступает от сторонних служб, вы должны сделать все возможное, чтобы устранить эти удаленные зависимости. Вытягивание такого кода на ваш сайт динамически очень опасно, так как вы можете видеть, что он теперь разбивает ваш сайт.

Удалите все дублированные jQuery или убедитесь, что ваш плагин аккордеона загружен после последнего.

Кстати, вопросы должны содержать duplicate the problem in the question. Я создал скриншот, чтобы этот вопрос полезен в долгосрочной перспективе для других людей, но он по-прежнему является плохим содержанием контента в целом. Никто, кто ищет помощь в будущем, должен пойти на ваш сайт, чтобы понять проблему.

+0

Есть также две различных версий jQueryUI аккордеона плагина загружены?! – Starscream1984

+0

@ Starscream1984 Я не вижу второго, но разве вы могли бы сначала увидеть загруженный «.css», а затем «.js» загружен позже? – rockerest

+0

У меня есть более длинный ответ внизу, его не аккордеон загружен дважды, а сама библиотека jQuery. Вы перезаписываете вложения jQuery UI, следовательно, makeaccordion undefined. –

1

У вас есть: jQuery Library Version: jQuery v1.11.1 | (С) 2005, 2014

Вы используете библиотеку аккордеона: аккордеон версия: "1.10.4" 1.10.4 (Legacy, для jQuery1.6 +)

Вы загружаете

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

2 раза.

и это

<script type="text/javascript" src="http://vds.sage.net/pluginsupport/highslide/highslide-full.packed.js"></script> 

два раза и некоторые другие вещи.

заряжаются аккордеон JQuery после того, как вы сделаете запрос на

<script src="jQueryAssets/jquery-1.11.1.min.js" type="text/javascript"></script> 

НО !! Затем вы повторно загружаете библиотеку jQuery еще два раза. Вы перезапись уже расширенный объект JQuery и там для удаления аккордеона JQuery UI и другие JQuery UI благости, что находится внутри вашего

<script src="jQueryAssets/jquery.ui-1.10.4.accordion.min.js" type="text/javascript"></script> 

ТАКЖЕ: http://api.jqueryui.com/1.10/ Они призывают вас обновить. - Не всегда хорошая идея в приложениях большого масштаба, кажется, 1.9 из jQuery имеет некоторые нарушения.

Надеется, что это помогает ..

Заберите: очистить ваш HTTP запросы на сценарии и это должно решить вашу проблему

+0

Спасибо, @Wes. Пожалуйста, просмотрите мои комментарии в приведенном выше ответе для ответов на ваши предположения. Кроме того, не 1.10 и 1.11 новее 1.9? И где вы видите, что я использую 1.9 на своем сайте явно? ((Возможно, SAGE может использовать 1.9 для подключаемого модуля VDS, но это полностью из-под моего контроля.)) И, наконец, все версии jQuery, которые вы видите там, были добавлены утилитами Dreamweaver (не то, что я контролировал). Я предполагаю, что одним из выводов сегодня является никогда не доверять jQuery Dreamweaver. – Sturm