Забыли пароль?
Запросите новый здесь.

Автор темы: Olegovich
ID темы: 2484
Информация:
Тема содержит 4 сообщения, была просмотрена 8340 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Темы оформления 7 версии
 Распечатать тему
Проблема с темой Spring
Olegovich
Всем привет! Взял тему Spring и столкнулся с такой проблемой:
там работает слайдер на jquery. А на некоторых страницах у меня привязан Lightbox, соответственно тоже на jquery. Запускается он из файла /themes/templates/header.php
Скачать исходники  Код
echo "<script type='text/javascript' src='".INCLUDES."jscript.js'></script>\n";
echo "<script type='text/javascript' src='".INCLUDES."jquery.js'></script>\n";
echo "<script type='text/javascript' src='/lightbox/js/prototype.js'></script>\n";
echo "<script type='text/javascript' src='/lightbox/js/scriptaculous.js?load=effects,builder'></script>\n";
echo "<script type='text/javascript' src='/lightbox/js/lightbox.js'></script>\n";
echo "<link rel='stylesheet' href='/lightbox/css/lightbox.css' type='text/css' media='screen' />\n";



Проблема очевидна: работает или слайдер или Lightbox. Я так понимаю конфликт? Как решить можно, чтобы и то и то работало???
Заранее благодарен!!!

 
Warhangel
Открываем фаил слайдера и перед первым <script> прописываем:

Скачать исходники  Код
<script type="text/javascript">
     jQuery.noConflict();
 </script>




получаем:

Скачать исходники  Код
<script>
jQuery.noConflict();
</script>
<script>

чего то тут из java и тд
jQuery(document).ready(function()
{
.......




После того как вставка сделана, нужно в самом скрипте который использует библиотеку jQuery сделать замену, а именно знаки доллара $ заменяем на jQuery. НО! заменяем $ только идущие перед открывающейся скобкой в тегах <script>.

Например:
Скачать исходники  Код
$('#divmenu'+j).hide(0);



Здесь меняем $ на jQuery

Скачать исходники  Код
for (j=1;j<$res_rows2+1;j++)



Здесь НЕ меняем

 
Web
Polarfox
я бы предложил попробовать поубирать дублирующие скрипты нафиг, потому что они могут сносит обработчики которые были до них (важное условие - оставлять желательно более новые версии - и то не факт что проблем не будет).

еще вариант - совсем извращенный, с окукливанием в своем намеспайсе каждого скрипта - тоже будет работать.


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Olegovich
Warhangel, Спасибо за ответ!
В файле theme.php, где подключается было так:
Скачать исходники  Код
<script type='text/javascript' src='".THEME."scripts/jquery-1.4.3.min.js'></script>
    <script src='".THEME."scripts/jquery.nivo.slider.js' type='text/javascript'></script>
     <script type='text/javascript'>
    $(window).load(function() {
        $('#slider').nivoSlider();
    });
    </script>



Добавил jQuery.noConflict и заменил & на jQuery и стало так:
Скачать исходники  Код
<script type='text/javascript' src='".THEME."scripts/jquery-1.4.3.min.js'></script>
     <script type='text/javascript'>
     jQuery.noConflict();
 </script>
    <script src='".THEME."scripts/jquery.nivo.slider.js' type='text/javascript'></script>
     <script type='text/javascript'>
    jQuery(window).load(function() {
        jQuery('#slider').nivoSlider();
    });
    </script>



Вот так работают оба скрипта.
Спасибо за помощь!!!


Изменил(а) Olegovich, 20.04.2015 20:11
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: