jQuery.noConflict()
是一个用于解决 jQuery 与其他 JavaScript 库(如 Prototype、MooTools 等)之间 $
符号冲突的方法。它会释放 jQuery 对 $
变量的控制权,将其归还给其他库。
noConflict()
后 jQuery 代码停止工作$
不再指向 jQuerynoConflict()
后仍使用 $
访问 jQuerynoConflict()
未按预期工作// 释放 $ 控制权
var jq = jQuery.noConflict();
// 之后使用 jq 代替 $
jq(document).ready(function() {
jq("div").hide();
});
(function($) {
// 在这里 $ 指向 jQuery
$(document).ready(function() {
$("div").hide();
});
})(jQuery);
// 加载第一个 jQuery 版本
var jq1 = jQuery.noConflict(true);
// 加载第二个 jQuery 版本
var jq2 = jQuery.noConflict(true);
// 使用不同变量访问不同版本
jq1(document).ready(function() {
jq1("div").hide();
});
jq2(document).ready(function() {
jq2("p").show();
});
<!-- 先加载其他库 -->
<script src="prototype.js"></script>
<!-- 然后加载 jQuery -->
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
// 现在 $ 指向 Prototype
</script>
jQuery
代替 $
:在大型项目中,避免使用 $
符号jQuery(function($) { ... })
形式,它内部会正确处理 $
符号$
符号的库时通过正确使用 noConflict()
方法,可以避免 jQuery 与其他库的冲突,确保应用程序稳定运行。
没有搜到相关的文章