如何阻止两个jquery库相互冲突
How do I stop the two jquery libraries from conflicting with each other?
我的页面包含几张幻灯片,只需js/jquery-1.5.2.min.js即可完美运行。
我最近用谷歌CDN在我的网页(www.ug-mart.com)上推出了一个顶部横幅,但顶部横幅不起作用。我不得不删除js/jquery-1.5.2.min.js才能使顶部横幅正常工作。
删除了js/jquery-1.5.2.min.js之后,所有最初运行良好的东西现在都不起作用了。只有最上面的横幅才有效。似乎我不能把js/jquery-1.5.2.min.js都放在同一个页面上。
有没有办法阻止这两个jquery库发生冲突并进行协作?
期待您的回复。
SirBT
您可以使用.noConflict()
安全地将jQuery与其他库一起使用。通常,这是$
函数名的使用冲突。
我更喜欢用"闭包"方法进行jquery:
(function($){
//i can use "$" safely in here
}(jQuery));
此外,如果您正在使用多个版本的jQuery,那么就不要使用。只要下载最新的并使用它。它仍然应该满足一些旧的API。
这里有一个示例代码来展示它是如何工作的:
//lets hijack the "$"
$ = (function() {
return {
libName: "some other library using $"
}
}());
//create a closure for us to use "$"
(function($) {
//we can now use the $ safely in this closure
$('body').text('hello world! in the body!');
//let's check "$" in here
console.log('in here, "$" is jQuery:',$);
}(jQuery));
//let's check "$" out here
console.log('out here, "$" is:', $);
请参阅jQuery的$.noConflict()
尽管如此,重建任何插件都需要旧的jQuery,并且只使用新版本,这样你会过得更好。
$.noConflict()
工作吗?首先导入js/jquery-1.5.2.min.js,使用$.noConflict()
注册js/jquery-1.5.2.minjs,然后使用另一个代码块,导入另一个版本的jquery。最后,使用jQuery.xxx()
而不是$.xxx()
重写顶部横幅
我认为这应该是工作。
根据指定替换其中任何一个:-在其中任何一个中声明
$a = jQuery.noConflict();
用该文件中的$a替换该文件的所有$
简单的答案。将其添加到脚本的末尾。
<script src=""></script>
<script src=""></script>
<script type="text/javascript">
$.noConflict(true);
</script>
- 返回按钮代码段的Jquery冲突
- javascript对象原型与jquery冲突
- 为什么'滚动到顶部'脚本导致类型错误?jQuery冲突
- 如何解决jQuery冲突
- Jquery冲突单击
- 可能与JQuery冲突
- mootools和jquery冲突-noconflict对我不起作用
- Unite Revolution 滑块与 Joomla 中的 jquery 冲突
- 确保永远不要有 JQuery 冲突
- 如何解决两个 jquery 冲突
- 下拉菜单和 AJAX 窗口之间的 jquery 冲突
- 如何解决光滑的轮播jquery冲突问题
- 未定义 jQuery,并且 jquery 冲突
- Jquery冲突问题
- 日历和快速搜索的 Jquery 冲突问题
- RequireJS :处理与填充程序和非AMD加载脚本的jQuery冲突
- 加载插件时不同版本的 jQuery 冲突
- JavaScript 函数名称与 jQuery 冲突
- 避免 chrome 扩展程序中的 jquery 冲突
- 水平鼠标滚轮滚动与地图 JQuery 冲突