подключение библиотеки Jquery к шаблону.

Тема в разделе "Программирование", создана пользователем optic, 09.09.2010.

  1. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Доброго времени суток.
    Не знаю в тот ли раздел поал,вообщем пытаюсь на главной странице шаблона запустить слайд шоу на Jquery но не чего не работает.
    По форуму есть темы с проблемой подключения Jquery но побробовав разные варианты, все равно у меня не работа
    Скрипты пишу в index.php.
    # Подключение
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
    <script type="text/javascript" src="js/jquery.cycle.all.min.js"></script>
    <script type="text/javascript" src="js/jquery.easing.1.1.1.js"></script>

    #Сам скриптик
    <script type="text/javascript"
    var $conf = jQuery.noConflict();
    $conf(function () {
    $("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });
    });
    </script>

    Эсть такая штука SC jQuery, но я в етом деле в принципе начинающий, и после установки этого плагина не допру что делать дальше. Пишут что надо обернуть скрипт в
    jQuery(function($) {
    $('body').css('color','red');
    });
    но у меня все равно не работает.
    Может у кого было похожее, как кто решал?
     
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    рекомендую все манипуляции с JS-кодом производить в отдельных библиотеках. А что бы это все работало нужно все обернуть в он-лоад:
    Код (CODE):
    1. JQuery(document).ready(function()
    2. {
    3.  
    4. });
     
  4. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    типа так


    JQuery(document).ready(function()
    {
    $("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });
    });

    вот че мне после етого пишет

    Ошибка: $("#slideshow") is null
    Источник: http://tovznak/templates/tovznak/js/script.js
    Строка: 13

    Ошибка: $("#slideshow").cycle is not a function
    Источник: http://tovznak/
    Строка: 77

    что бы могло быть?
     
  5. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Ну пишет же что элемента с id ="slideshow" нету на странице. Вторая ошибка вытекает из первой. Или это конфликт с mooptools который тоже использует $. В первом варианте было же noConflict() почему во втором варианте не используется
     
  6. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    а как елемента может не быть на странице ,если вот он? Привожу именно етот див.

    <div id="slideshow">


    <img src="templates/tovznak/images/fotokiev1.jpg" alt="Фотография киева" />
    <img src="templates/tovznak/images/fotokiev.jpg" alt="Фотография киева" />
    </div>
    По поводу noConflict() , по теории если я оборачиваю мой скрипт в noConflict(), то у меня конфликтов быть не должно, ну и соотвецтвенно сткрипт должен заработать. Но у меня он не работает!!!. В етом получается и суть вопроса, что при оборачивании в noConflict() скрипт не работает.

    Вообще интерестно, менял ай ди, менял классы у дива к которому обращаюсь, но все равно пишет Ошибка: $("#slideshow") is null . Если всавлял
    *var $conf = jQuery.noConflict();
    $conf(function () {
    $("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });
    });
    то пишет что Ошибка: jQuery is not defined
     
    Последнее редактирование: 10.09.2010
  7. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    <script type="text/javascript">
    JQuery(document).ready(function()
    {
    var conf = jQuery.noConflict();
    conf("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });
    });
    </script>
     
  8. Offline

    SindBAD Недавно здесь

    Регистрация:
    09.06.2009
    Сообщения:
    100
    Симпатии:
    6
    Пол:
    Мужской
    optic, у вас объявлено
    var $conf = jQuery.noConflict();
    забудьте про $. Теперь все команды jQuery должны выглядеть как $conf();

    <script type="text/javascript">
    var $conf = jQuery.noConflict();
    $conf(document).ready(function()
    {
    $conf("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });
    });
    </script>
     
  9. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    botanist вставил предложеный вами вариант no conflict в index.php. но все равно скрипт не запускается, если создавать отдельно html файлик то скриптик работает. причем с no conflict пишет что JQuery is not defined в консоле ошибок firebug. Я так понимаю что не может определить Jquery, не понимает что ето именно оно. Если убрать no conflict, т.е
    $("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });

    то получаем
    $("#slideshow").cycle is not a function

    Line 90
     
  10. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    а у тебя вообще сам фреймворк Jquery подключен к шаблону?
    и забей ты на эту переменную которую ты создаёшь, помести в папку JS сам Jquery.js чтобы он не грузился с гугла, далее в index.php напиши
    Код (PHP):
    1. <script type='text/javascript' src='/js/jquery.js'></script> <!-- подключаем фреймворк -->
    2. <script type='text/javascript' src='/js/[B]script[/B].js'></script> <!-- подключаем скрипт -->


    в самом скрипте напиши:
    JQuery.noconflict();
    а далее вместо всех "$" просто пиши слово "Jquery" и работать будет на ура!!!
     
  11. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    к тому же ты уверен что в тех кусках Jquery которые ты подключил к шаблону у есть функция CYCLE?
     
  12. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    ну вот она

    $("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });

    конечно не исключено что я долдон, но

    #подключение
    <script type="text/javascript" src="/templates/<?php echo $this->template ?>/js/script.js"></script>
    <script type='text/javascript' src='/templates/<?php echo $this->template ?>/js/jquery-1.4.2.min.js'></script>
    <script type="text/javascript" src="/templates/<?php echo $this->template ?>/js/jquery.cycle.all.min.js"></script><!--библиотеки необходимые для роботы еффекта-->
    <script type="text/javascript" src="/templates/<?php echo $this->template ?>/js/jquery.easing.1.1.1.js"></script><!--библиотеки необходимые для роботы еффекта-->
    #Сам скрипт в файле script.js

    JQuery.noconflict();
    JQuery("#slideshow").cycle({
    fx: 'cover',
    speed: 1000,
    timeout: 2500
    });

    мой блок который должен двигатся как слайд шоу(на всякий приведу код, хотя особо он не нужен)

    <div id="slideshow">
    <img src="templates/tovznak/images/fotokiev1.jpg" alt="Фотография киева" />
    <img src="templates/tovznak/images/fotokiev.jpg" alt="Фотография киева" />

    <img src="templates/tovznak/images/fotokiev1.jpg" alt="Фотография киева" />
    <img src="templates/tovznak/images/fotokiev.jpg" alt="Фотография киева" />
    </div>

    И не фига не работае:)

    выдает тож самое

    Ошибка: JQuery is not defined т.е библиотека не подключается и соотвецтенно функцию определить не может.

    Ошибка: $("#slideshow").cycle is not a function
     
    Последнее редактирование: 10.09.2010
  13. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    обернул вот так

    jQuery(function()
    {
    jQuery.noConflict();
    });

    ошибка о не определении Jquery пропала:)

    осталась о том, что cycle не функция

    Ошибка: $("#slideshow").cycle is not a function
    во етого вообще не могу догнать, что ето может значить?
     
  14. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    во-первых почему то у тебя библиотека сама по себе не подключена, этот вопрос ты задай себе, может у тебя к ней просто путь неправильно прописан
    во-вторых сам скрипт у тебя оформлен не верно смотри как оно должно быть:
    Код (CODE):
    1. jQuery.noConflict();
    2. jQuery (
    3.     function () {      
    4.         jQuery("#slideshow").cycle({
    5.             fx:     'fade',
    6.             speed:   3000,
    7.             timeout: 5000
    8.         });
    9.     }
    10. )
     
  15. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    скрипт исправил, по поводу подключения , путь прописан так же как и для css:
    <link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/style.css" type="text/css" />
    <script type='text/javascript' src="/templates/<?php echo $this->template ?>/js/jquery-1.4.2.min.js"></script>
    цсс работает, вроде как и библиотеки должны подключится, ладно по гуглю на ету тему:)
     
  16. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    так, вообщем осталась одна ошибка

    Ошибка: jQuery("#slideshow").cycle is not a function
    Источник: http://tovznak/templates/tovznak/js/script.js
    Строка: 29
    это значит что библиотеки не подключены? хотя по логике если виден мой script.js то должны наверно подключатся и библиотеки , которые находятся в той же папке. Функция cycle у меня описана в jquery.easing.1.1.1.js вроде. т.е должно работать, но нет... что то в конец запутался, мистика какая то
     
  17. woojin
    Offline

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    вот тебе названия библиотек которые подключены на сайте boombox.ru
    и там работает на главной это слайд шоу
    1.3.2/jquery.min.js
    jquery.cycle.all.latest.js

    резанул прямо из исходного кода страницы
     
  18. Offline

    optic Недавно здесь

    Регистрация:
    09.05.2010
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    Вообщем по прежнему не хрена не работает, но я вроде понял почему, не подключаются библиотеки. Я закоментил строчки подключения, и ошибка та же выскакивает:)
    Но как я не пробовал менять путь, к файликам библиотек, не фига не помогает, положыл их даже в корень

    <!--<script type="text/javascript" src="jquery.cycle.all.min.js"></script>
    <script type="text/javascript" src="jquery.easing.1.1.1.js"></script>-->

    в принципе то же самое. Тут я вообще не могу понять, разве можно их каким то другим способом подключить? Эсли нет, то что, выходит я их не смогу вообще подключить? ерунда какая то.
     
  19. Offline

    Иван_86 Недавно здесь

    Регистрация:
    24.08.2010
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    У меня подобная проблема, как не бился не смог jQuery поставить на Joomla. Попробуйте использовать плагин jQuery++ Integrator (http://extensions.joomla.org/extensions/core-enhancements/scripts/12995), правда он мне тоже не помог, но возможно у вас получится.
    Если решите проблему отпишитесь пожалуйста. )
     
  20. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    омг, что с вами происходит ?

    Код (CODE):
    1. jQuery(document).ready(function()
    2. {
    3.    var j = jQuery.noConflict();
    4.  
    5.    alert( j("myid").text() );
    6. }


    в чем проблема ???
     
  21. Tureckiy
    Offline

    Tureckiy специалист

    Регистрация:
    11.04.2009
    Сообщения:
    423
    Симпатии:
    30
    Пол:
    Мужской
    Когда селектор не нашел элемент - jquery ругаться не будет. Просто Jquery не подключен. Я его подключаю после <jdoc:include type="head" /> потом jQuery.noConflict();
     

Поделиться этой страницей

Загрузка...