我正在使用两个不同的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>
谢谢!
答案 0 :(得分:2)
尝试安排脚本参考:
1)jquery
2)jquery-ui
3)newsticker
并在调用任何与jquery相关的方法之前将其添加到页面顶部。
不是100%确定这是否有效,但试一试。
不知道您正在使用哪个版本的newsticker,但请查看此link。
答案 1 :(得分:2)
仅添加jQuery.noConflict();
并不总是足够的。您可能还需要使用jQuery替换所有出现的$。困难在于,变量通常被定义为$a_variable_name
,替换$ in变量将导致错误。
看看您是否可以找到已经进行noConflict
编辑的tipsy版本。另请注意,通常需要添加noConflict
并将$ jQuery替换为其他jQuery脚本,尤其是当该脚本依赖于另一个时。
这确实解决了冲突,因为我已经这样做了一段时间。另请注意,如果您始终使用jQuery,则通常不需要这些编辑。
加载脚本文件的顺序也很重要,请尝试重新排列。
仅在需要时执行脚本。换句话说,如果某段代码导致冲突,请使用脚本标记从需要的页面加载,而不是在标题中加载。
答案 2 :(得分:1)
您可能需要声明变量。因为$正在使用像prototype这样的其他js框架。 所以只需将脚本置于脚本顶部即可。
var jQuery = jQuery.noConflict();
答案 3 :(得分:0)
在我的网页上使用大量插件时遇到了同样的问题。最简单的解决方案是拥有所有.js文件的连接文件,并在头部有一个包含。您还可以缩小(缩小在线工具)连接文件并仅包含最小版本。这应该可以解决问题。
另一种方法是在调用插件中的函数之前确保插件可用。尝试使用jquery的getScript来确保加载两个插件并在getScript的成功处理程序中进行插件的函数调用