2011-06-30 47 views
0

我使用了两个不同的jQuery插件;一个用于新闻徽标自动收报器,另一个用于水平文本滑块。我该如何解决这个jQuery插件冲突?

,但其中只有一个是在的时候,在单页使用的可能是因为jQuery冲突的时候工作。如果我评论的第一个插件插件第二工作正常,反之亦然。

下面是代码:

<script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript" src="js/jquery.newsticker.js"></script> 
    <script type="text/javascript"> 
     jQuery(document).ready(
      function() 
      { 
       jQuery("#news").newsTicker(); 
       jQuery("#development").newsTicker();     
      } 
     ); 
    </script> 
    <link href="css/style.css" rel="stylesheet" type="text/css">    
    <link rel="stylesheet" type="text/css" href="plugins/image_slider/css/sliderman.css" /> 


    <link type="text/css" href="css/humanity/jquery-ui-1.8.13.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/jquery-1.5.1.min.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8.13.custom.min.js"></script> 
    <script type="text/javascript"> 
     jQuery(function(){ 
      jQuery("#accordion").accordion({ header: "h3" }); 
     }); 
    </script> 
    <link rel="stylesheet" href="css/news.css" type="text/css" media="screen"> 
    <script src="js/jcarousellite_1.0.1c4.js" type="text/javascript"> 
</script> 

谢谢!

+2

什么是冲突? – Ibu

+1

不依赖于主jQuery库的'jquery.newsticker.js'?首先加载基础库 – Ibu

+0

thanx ibu ... !!!!!加载基础库。首先和轻微的变化出来的结果.. –

回答

1

您可能需要声明变量。因为$正在使用其他js框架,如原型。 所以只需将它放在脚本顶部的下面的脚本中即可。

var jQuery = jQuery.noConflict(); 
+0

thanx .. !!!!但jquery.noconflict不似乎是一个问题。问题是,第二个jquery插件覆盖第一个.. –

+0

是移动''到顶部你的脚本 –

2

尽量安排您的脚本引用:

1)jQuery的

2)jQuery的UI

3)字幕跑马灯

,并把它添加到页面的前顶部调用任何jQuery相关的方法。

不是100%肯定这是否会工作,但不妨一试。

不知道你正在使用的字幕跑马灯的版本,但看看这个link

+0

嘿thanx! :)我试过它BT相同....它没有工作.. –

+0

快乐。您也可以尝试将代码转换为仅使用$而不是JQuery。例如$(function(){/ * Code * /});而不是jQuery(function(){/ * Code * /}); –

+0

更新了我的答案,其中包含一个指向newsticker源的链接。确保你使用最新的。 –

0

我在为我的网页使用大量插件时遇到了同样的问题。最简单的解决方案是有一个包含所有.js文件的连接文件,头部只有一个包含文件。你也可以缩小(缩小工具在线)链接文件,只包括最小版本。这应该可以解决问题。

另一种方式是,以确保您调用插件的功能之前,插件是可用的。尝试使用getScript加入jQuery的,以确保这两个插件的加载和使getScript加入

1
  1. 的成功处理程序并不总是不够的,只是添加jQuery.noConflict();内插件的功能调用。您可能还需要用jQuery替换所有出现的$。难点在于,变量通常定义为$a_variable_name,取代变量中的$将导致错误。

    看看你是否能找到一个版本的醉意与已经取得的noConflict编辑。还要注意,通常需要添加noConflict,并用其他jQuery脚本替换$ jQuery,特别是如果该脚本依赖于其他脚本。

    这确实解决了冲突,因为我一直这样做了一段时间。另请注意,如果您始终使用jQuery,则通常不需要这些编辑。

  2. 加载脚本文件的顺序也很重要,请尝试重新排列它们。

  3. 仅在需要时执行脚本。换句话说,如果一段特定的代码引起冲突,请使用脚本标记从需要的页面加载它,而不是加载到页眉中。