我刚刚在我的网站上实现了多语言模式。
问题是来自语言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>
js / jquery-1.3.2.min.js是使主页上的3图像滑块工作的原因,但是......它似乎也在干扰翻译器的功能。
如果您从页面中删除js / jquery-1.3.2.min.js,则翻译工作正常,但滑块不再有效。
从页面中删除js / jquery-1.4.2.min.js也不会使翻译工作,实际上它似乎会导致后面出现更多错误。
有人可以指导我正确的方向,使我能够使语言翻译器和图像滑块都工作吗?
谢谢:)
答案 0 :(得分:4)
查看jQuery noConflict函数。该函数告诉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,只需使用jQuery
变量名而不是$
来使用它。
希望这有帮助!
答案 1 :(得分:4)
简短版本是删除它:
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
更新你的插件,每个版本都有1.4.x版本。通过第二次包含jQuery,就像你现在一样,它会消除插件并引发各种问题......第一步是删除第二个(希望是较旧的)实例。
编辑:这是一个名为jFlow plus的jFlow的更新版本,适用于1.4.2。
答案 2 :(得分:1)
我总是解决两个版本的jquery之间的冲突,例如:使用iframe在同一页面上使用jQuery 1.3.2和jQuery 1.4.2,但我最近发现你可以单独使用版本jquery-1.5.1.js并且一切正常。
答案 3 :(得分:1)
我更改了以下代码中使用的页面上的所有.js文件:
<script>
var K = jQuery.noConflict();
alert(K);
jQuery(document).ready(function () {
alert("Bye");
});
</script>
现在工作正常。
答案 4 :(得分:0)
我最后只是改变了加载库的顺序。
我让所有jquery库首先加载,从最新到最旧。然后我调用了依赖jquery的javascript文件。
现在工作正常。