Javascript jQuery被外部插件覆盖
我在我的网站上使用jQuery。然而,考虑到Chrome插件可能会在全局范围($)中导入there own的jQuery版本,我如何防止他们的jQuery(来自客户端浏览器上的插件)覆盖我的jQuery(最初与网站一起加载的jQuery以及构建在其上的扩展功能)。使用jQueryJavascript jQuery被外部插件覆盖,javascript,jquery,Javascript,Jquery,我在我的网站上使用jQuery。然而,考虑到Chrome插件可能会在全局范围($)中导入there own的jQuery版本,我如何防止他们的jQuery(来自客户端浏览器上的插件)覆盖我的jQuery(最初与网站一起加载的jQuery以及构建在其上的扩展功能)。使用jQueryjQuery.noConflict() $.noConflict(); jQuery(文档).ready(函数($){ //使用jQuery的$的代码如下所示。 }); //使用其他库的$的代码可以在这里找到。 有关
jQuery.noConflict()
$.noConflict();
jQuery(文档).ready(函数($){
//使用jQuery的$的代码如下所示。
});
//使用其他库的$的代码可以在这里找到。
有关更多详细信息,请参阅以下内容。为了解决这些情况
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// Code that uses other library's $ can follow here.
</script>
<script src="other_lib.js"></script>
<script>
$j(document).ready(function(){
//your code
})
</script>
var$j=jQuery.noConflict();
//使用其他库的$的代码可以在这里找到。
$j(文档).ready(函数(){
//你的代码
})
然后使用您可以在需要使用jQuery引用的地方使用
$j
而不是jQuery
或$
。如果页面上需要多个版本的jQuery,也可以使用相同的方法。只是使用不同的变量 建议查看jQuery.noConflict,您可以给$/jQuery一个不同的引用-
请参考这一点,但不是反过来说没有冲突吗?我可以使用noConflict放弃使用$。也就是说chrome插件可以继续使用它。但是,如果我有一个庞大的代码库,其中包含大量对$的引用,该怎么办?应该是chrome插件jquery放弃了控制权?@Rahul,对。我想说的是,一个迫使你加载的所有页面都使用
$.noConflict()
的Chrome扩展已经无法补救了。我将jquery称为jquery或$以外的东西,这更像是一种防止插件覆盖jquery的黑客权利?但是考虑到插件的数量,这不是一个强制性的标准吗?
<script src="jquery.js"></script>
<script>
var $j = jQuery.noConflict();
// Code that uses other library's $ can follow here.
</script>
<script src="other_lib.js"></script>
<script>
$j(document).ready(function(){
//your code
})
</script>
var j = jQuery.noConflict();
j( "div p" ).hide();
// Do something with another library's $()
$( "content" ).style.display = "none";