1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Инфо Решение конфликтов jQuery и Mootools, и разных версий jQuery

Тема в разделе "Joomla", создана пользователем puagardian, 7 сен 2012.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. puagardian

    puagardian One Love

    Moderator
    Регистр.:
    16 июл 2012
    Сообщения:
    433
    Симпатии:
    558
    Сегодня столкнулся с проблемой когда на одном из разрабатываемых сайтов на Joomla перестали работать слайдеры изображений на Widgetkit, слайлер фото RS-Flashion и скрипт который я подключил к сайту для вывода картинок когда наводишь мышкой на определенную позицию в прайсе. Недолго думая понял что происходит данный глюк из-за конфликтов разных версий jQuery. По этой теме немало в интернете есть информации, но внедрение скриптов аля "ноу конфликт" не решало проблемы, а только усугубляло (без него что-то одно работало, с ним - ничего).
    РЕШЕНИЕ: Плагин EasyjQuery, подойдет для Joomla 1.5, 2.5. В нем можно выставить какую версию jQuery на какой странице подключать, подключать из собственной папки, брать от google или самому указывать путь, использовать режимы "ноу конфликт" и еще много чего. Подойдет для устранения конфликтов как разных версий jQuery так и конфликтов jQuery и MooTools.
     
  2. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Конфликт jQuery и MooTools устраняется легко через noConflict, просто иногда он криво работает - нужно правильно заменить все $ на jQuery и вывести подключение jQuery и MooTools в правильном порядке, иначе то один скрипт не работает то другой. Иногда даже стоит перенести два скрипта в один фал
     
  3. gls

    gls Комбат

    Регистр.:
    11 янв 2007
    Сообщения:
    555
    Симпатии:
    280
    я в свое время на двух сайтах заменил $ на $$ - все работает и никаких конфликтов нет. Но что интересно, noConflict не помогло
     
  4. puagardian

    puagardian One Love

    Moderator
    Регистр.:
    16 июл 2012
    Сообщения:
    433
    Симпатии:
    558
    Вот все это хорошо и охотно верится что работает это все (хотя про noConflict я уже писал) работает но ИМХО сложно это все по сравнению с установкой и настройкой нужного плагина, да и не описано доходчиво (искал поверхносно). Прикрепляю данный плагин к сообщению, новую версию можно скачать здесь: http://www.simplifyyourweb.com/index.php/downloads/category/8-loading-jquery
    Плагин бесплатный, но для скачивания требуется регистрация на их сайте.
     

    Вложения:

  5. demolg

    demolg

    Регистр.:
    13 авг 2007
    Сообщения:
    231
    Симпатии:
    76
    Согласен с Sergo_Sev, теоретически все должно работать через noConflict (когда в скриптах указано не $ а jQuery). У себя на одном сайте я так и сделал, но потом понял что это дополнительная нагрузка на пользователя, поэтому переделал некоторые компоненты с MooTools на jQuery. Что и вам советую.

    P.S Joomla для себя уже поставила приоритетом библиотеку jQuery из-за более динамичного роста и большего сообщества. В Joomla 3.0 в ядре будут идти и MooTools и jQuery (noConflict). А в последующих версиях останется только jQuery.
     
  6. al-teen

    al-teen Постоялец

    Регистр.:
    1 сен 2012
    Сообщения:
    75
    Симпатии:
    5
    Конфликт коровы и jquery устраняется методом устранения одной из этих библиотек. Довольно безграмотно использовать их обе на одном ресурсе, так как то, что можно реализовать на му, реализуемо и на jquery. Можно конечно использовать noConflict, как писалось выше. Но лучше вообще удалить мутулз. Правда есть сложности. Два способа отключения: а) ставим http://www.joomlabamboo.com/joomla-extensions/jb-library-plugin-a-free-joomla-jquery-plugin или http://extensions.joomla.org/extensions/core-enhancements/performance/mootools/15748 - лично я использую первый.; б) Открываем index.php шаблон
    Код:
    $document = JFactory::getDocument();
    unset($this->_scripts[$this->baseurl.'/media/system/js/mootools-core.js'],
        $this->_scripts[$this->baseurl.'/media/system/js/mootools-more.js'],
        $this->_scripts[$this->baseurl.'/media/system/js/core.js'],
        $this->_scripts[$this->baseurl.'/media/system/js/caption.js']);
    $document->addScript('[URL][URL][URL][URL]https://ajax.googleapis.com/ajax/libs/mootools/1.4.2/mootools-yui-compressed.js[/URL][/URL][/URL][/URL]'); // подключаем JQuery
      // Вычищаеи остатки кода инициализации caption.js:
            if( isset($this->_script['text/javascript']) ) {
                $this->_script['text/javascript'] = preg_replace('%window\.addEvent\(\'load\',\s*function\(\)\s*{\s*new\s*JCaption\(\'img.caption\'\);\s*}\);\s*%', '', $this->_script['text/javascript']);
                if( empty($this->_script['text/javascript']) )
                unset( $this->_script['text/javascript'] ); }
    Но и это еще не все. Нужно вычистить хвосты behavior из шаблонов вывода компонентов и модулей. Бывает без конфликтов и не вычищая, но случается, что все становится колом, например, после включения модуля авторизации. Качаем приложенный архив, заменяем им содержимое папки html шаблона. На всякий случай сделайте дамп своей папки html, так как шаблоны расширений в приложенном архиве на уровне верстки не изменены, тогда как в Вашем шаблоне может быть иначе, разработчик переверстал отдельные модули или тот же com_content под структуру отдельно взятого шаблона. Архив предназначен для J2.5 версии.
     

    Вложения:

    • html.zip
      Размер файла:
      95,3 КБ
      Просмотров:
      20
  7. Aleks1979

    Aleks1979 Постоялец

    Регистр.:
    6 май 2012
    Сообщения:
    51
    Симпатии:
    25
    А так не пробовали?



    var j = jQuery.noConflict();
    j(document).ready(function() {
    jQuery('выбираемый тег').действие();
    jQuery('выбираемый тег').действие();
    и т.д.
    });
     
Статус темы:
Закрыта.