网站上的JQuery和Prototype冲突
conflicted JQuery and Prototype on website
我有一个使用Prototype的遗留网站。但是我还想使用JQuery。当Prototype和JQuery都覆盖$
符号时,我如何在同一页面上使用它们?
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
</head>
<body></body>
</html>
参见http://docs.jquery.com/Using_jQuery_with_Other_Libraries
除了使用.noConflict()
方式,您还可以确定jQuery代码的范围。
<script>
(function($) {
//write your jQuery code here.
})(jQuery);
</script>
如果您想使用一些简写,请执行
var j$ = jQuery.noConflict();
现在您可以对jquery 使用j$而不是$
类似于Elementenpresser的答案,我建议在使用jQuery.noConflict()的基础上;您可以用一个匿名函数包装整个jQuery代码,保持所有jQuery代码的完整性,而无需将所有"$"更改为"jQuery"。
jQuery.noConflict();
(function($){
$("div").hide(); //will use jQuery
})(jQuery);
$("div").hide(); //will use prototype
jQuery("div").hide(); //will use jQuery again.
您可以使用匿名函数包装所有使用jQuery的javascript文件。您根本不需要将$更改为jQuery。这也是一个性能改进,因为函数中声明的所有变量都不会附加到全局作用域,从而使应用程序更快。
相关文章:
- 直接在函数声明上使用function.prototype.bind
- 如何迭代Array.prototype函数
- Javascript-ID冲突的几率
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- Object.prototype using 'this'
- Pg承诺性能提升:在冲突中
- 数据与Javascript中的继承冲突
- Angular ng控制器与ng应用程序冲突
- Prototype 和 jQuery 之间的冲突
- 网站上的JQuery和Prototype冲突
- jQuery与prototype.js冲突:日历图标没有弹出
- 在magento中使用jquery库会与prototype.js发生冲突
- 是否可以在不发生冲突的情况下修复prototype.js和jquery.js之间的冲突
- 如何解决Prototype与DataPicker或Tooltip之间的jQuery冲突
- Prototype.js与jquery.js冲突:如何解决?
- Garmin prototype.js与本地jquery文件冲突
- JS小部件(使用Jquery)与主机页面上的Prototype冲突
- mm菜单&prototype.js冲突,html在使用搜索字段时消失
- 识别和修复javascript/prototype/jquery冲突
- jQuery与Prototype冲突(noconflict不起作用)