JQuery конфликт - PullRequest
       6

JQuery конфликт

0 голосов
/ 13 февраля 2010

У меня есть плагин wordpress lightbox2 и скроллер новостей на моей странице.

Моя голова выглядит так

<script type="text/javascript" src="wp-content/themes/soundsright/menu.js"></script>
<script type='text/javascript' src='wp-includes/js/prototype.js?ver=1.6'></script>
<script type='text/javascript' src='wp-includes/js/scriptaculous/wp-scriptaculous.js?ver=1.8.0'></script>
<script type='text/javascript' src='wp-includes/js/scriptaculous/effects.js?ver=1.8.0'></script>
<script type='text/javascript' src='wp-content/plugins/lightbox-2/lightbox.js?ver=1.8'></script>
<script type='text/javascript' src='wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>

    <!-- begin lightbox scripts -->
    <script type="text/javascript">
    //<![CDATA[
    document.write('<link rel="stylesheet" href="wp-content/plugins/lightbox-2/Themes/Grey/lightbox.css" type="text/css" media="screen" />');
    //]]>
    </script>
    <!-- end lightbox scripts -->


        <!-- SwfObj Plugin version SWFOBJ_VERSION -->
        <script type="text/javascript" src="wp-content/plugins/swfobj/swfobject.js"></script>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="wp-content/themes/soundsright/liscroll.js"></script>

<script type="text/javascript">
$(function(){
   $("ul#ticker01").liScroll({travelocity: 0.03});  

});

</script>

Как и сейчас, работает скроллер новостей, но не плагин лайтбокса. Когда я удаляю

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>

тогда лайтбокс работает, но не скроллер новостей.

Я думал, что удаление этой ссылки jQuery решило бы проблему, потому что wordpress уже загружает ту же версию jQuery в этой строке

<script type='text/javascript' src='wp-includes/js/jquery/jquery.js?ver=1.3.2'></script>

Есть идеи, что я здесь не так делаю?

Ответы [ 3 ]

1 голос
/ 13 февраля 2010

Я думаю, это будет из-за столкновения function(), у нас недавно было нечто подобное; вам нужно более точно сопоставить его с jQuery (в основном, ссылка на $ будет принадлежать прототипу или одному из других javascripts, поэтому вы должны заменить его на jQuery), например

jQuery(function(){

   jQuery("ul#ticker01").liScroll({travelocity: 0.03});  

});
0 голосов
/ 13 февраля 2010

Поскольку JQuery и Prototype используют знак $, используйте Jquery в режиме без конфликтов

   jQuery.noConflict();

   JQuery(function(){
       JQuery("ul#ticker01").liScroll({travelocity: 0.03});      
   });

и используйте $ для Прототипа

0 голосов
/ 13 февраля 2010

$ используется как прототипом, так и jQuery:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

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