我在使用jQuery.noConflict(true)
var jq = $.noConflict(true);
(function(jq) {
var jq = $;
console.log($);
})(_jQuery)
但我一直不断得到未定义的错误。是否能够帮助我将值传递给此函数,以便我可以使用jQuery?
编辑:我正在尝试在自动执行功能
中运行插件(function($) {
console.log($);
(function($){
})(jQuery)
})(jq)
问题在于函数是否经常被定义?
答案 0 :(得分:2)
我想也许你打算做这样的事情,删除所有jQuery全局变量,将主jQuery全局赋值给你自己的变量jq
,然后将它传递给一个自执行函数,该函数接受一个名为{{的{{ 1}}所以你可以在自执行函数中使用$
作为jQuery的名称,如下所示:
$
如果你真正想做的是在同一页面上加载多个版本的jQuery,你可以阅读这篇文章:Can I use multiple versions of jQuery on the same page?。
这是执行中的原则:
var jq = jQuery.noConflict(true);
(function($) {
console.log($);
})(jq);
然后,要为您的插件创建一个环境,您可以这样做:
<!-- load jQuery 1.3.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.3.2.js"></script>
<script type="text/javascript">
var jQuery_1_3_2 = $.noConflict(true);
</script>
<!-- load jQuery 1.8.2 -->
<script type="text/javascript" src="http://example.com/jquery-1.8.2.js"></script>
<script type="text/javascript">
var jQuery_1_8_2 = $.noConflict(true);
</script>
如果这是我的项目,我会花一些力气来弄清楚如何让我的所有代码都使用相同版本的jQuery,因为多个版本的jQuery减慢了页面的加载速度,消耗了更多内存并使得复杂化发展和麻烦。这没什么好处的。