Jquery/Javascript冲突?

Jquery/Javascript冲突?,javascript,jquery,conflict,Javascript,Jquery,Conflict,我刚刚在我的网站上实现了一个多语言的mod 问题是,来自语言模块的javascript文件和页面上已经存在的javascript文件之间似乎存在冲突 <!-- language files here --> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/translationEngin

我刚刚在我的网站上实现了一个多语言的mod

问题是,来自语言模块的javascript文件和页面上已经存在的javascript文件之间似乎存在冲突

<!-- language files here -->
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/translationEngine.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script> 
<script type="text/javascript" src="js/jquery.translate-1.3.9.min.js"></script>
<script>var browserlang = 'en';</script> 


<!-- Javascript -->

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery.pngFix.pack.js"></script>
<script type="text/javascript" src="js/jquery.flow.1.2.min.js"></script>
<script type="text/javascript" src="js/jquery.prettyPhoto.js"></script>
<script type="text/javascript" src="js/concept.js"></script>

var browserlang='en';
js/jquery-1.3.2.min.js是使主页上的3图像滑块工作的原因,但是。。。这似乎也干扰了译者的功能

如果从页面中删除js/jquery-1.3.2.min.js,则转换器工作正常,但滑块不再工作

从页面中删除js/jquery-1.4.2.min.js也不会使翻译器正常工作,事实上,它似乎会在后面导致更多错误

有人能给我指引正确的方向,让我的语言翻译和图像滑块都能工作吗

谢谢:)

查看jQuery函数。此函数告诉jQuery放弃对
$
变量的控制。这样,其他库可以使用它

在线文档为如何使用该功能提供了很好的指导。它救了我几次

在线文档中的示例:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
</script>

$.noConflict();
jQuery(文档).ready(函数($){
//使用jQuery的$的代码如下所示。
});
//使用其他库的$的代码可以在这里找到。
基本上,一旦调用了
noConflict
,您仍然可以使用jQuery,只需使用
jQuery
变量名,而不是
$


希望这有帮助

简短版本将删除此项:

<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

更新你的插件,每个插件可能都有1.4.x版本。通过第二次包含jQuery,就像您目前所做的那样,它将清除插件并导致各种问题……第一步是删除第二个(希望是较旧的)实例


编辑:这里有一个名为jFlow的更新版本,它适用于1.4.2。

我只是改变了加载库的顺序

我让所有jquery库首先加载,从最新到最旧。然后我调用了依赖jquery的javascript文件


现在工作正常。

我一直在使用iframes解决同一页面上jquery的两个版本之间的冲突,例如jquery 1.3.2和jquery 1.4.2,但我最近发现,您可以单独使用jquery-1.5.1.js版本,并且一切正常。

我更改了页面上使用的所有.js文件,代码如下:

<script>
var K = jQuery.noConflict();
     alert(K);
     jQuery(document).ready(function () {

         alert("Bye");
     });
</script>

var K=jQuery.noConflict();
警报(K);
jQuery(文档).ready(函数(){
警惕(“再见”);
});

它现在工作正常。

对于页面上有多个jQuery库的情况,
.noConflict()
并没有真正的帮助,这些库根本不能很好地发挥作用,它是为了与jQuery和另一个库一起使用。我知道这是在升级…我不确定为什么,对于以后发现它的人来说:这不会解决问题,
jQuery
变量正在通过第二个jQuery库重新定义。这是一个不必要的沉重和缓慢的页面,也不能正确地解决这个问题。我同意@Nick。您不能用值定义变量,用新值覆盖该变量,然后期望
noConflict()
(或任何其他方法)允许您引用旧的、被覆盖的值。
noConflict()
方法解决了与
窗口的冲突。$
,而不是与
窗口的冲突。jQuery
@Mark-不应该有,但jFlow插件似乎有一些中断…但插件的站点此时处于脱机状态,因此,我无法提供当前版本的链接:不应该->著名开发人员的遗言:p这不是一个很好的方法……对于您的客户来说,这是一个沉重得多的页面。为什么不升级flow插件(我提供了一个更新的链接我的答案),省去jQuery1.3.2,让你的页面更轻巧、更快捷?