当我添加jQuery库时,它会在同一页面上使我的其他jQuery失效

时间:2012-04-12 20:50:29

标签: javascript jquery

我正在尝试创建一个包含图像滚动和投票系统的页面(我从这里复制了http://yensdesign.com/2008/09/how-to-create-a-stunning-and-smooth-popup-using-jquery/)。

滚动条工作正常,直到我添加了投票弹出窗口。基本上,当我添加库

<script src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" type="text/javascript"> 

弹出窗口需要工作,滚动图像消失,每当我点击滚动箭头时页面似乎重新加载。如果我注释掉上面的库,那么滚动条会重新出现(但是弹出窗口不起作用)。以下是其他文件的目录。

  • public / scripts / general0.js - init for scroller
  • public / script / woo-jcar.js - scroller function
  • public / scripts / popup.js“ - 弹出式javascript

请帮忙!我是一个新手,所以这可能只是一个愚蠢的事情,如添加冲突的库或其他东西。

谢谢,

2 个答案:

答案 0 :(得分:1)

jQuery已存在于您的HTML标记的这一行的页面上(版本1.7.1):

<script type="text/javascript" src="public/scripts/jquery00.js"></script>

删除此行,你应该没问题:

<script src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js" type="text/javascript"></script>

答案 1 :(得分:0)

如Rocket所述,使用noConflict将$返回1.7.2并使用$ jq126引用jQuery 1.2.6:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $jq126 = $.noConflict(true);
    // $ (and jQuery) is jQuery 1.7.2
    // $jq126 is jQuery 1.2.6
</script>

如果这还不够,弹出库可能严格依赖于jQuery 1.2.6。然后打开弹出的libray js文件并以下面的方式包装所有代码:

(function($, jQuery){
    // all the lib code
})($jq126, $jq126);

通过这种方式,旧的lib继续引用旧版本的jQuery。