使用jQuery noConflict的正确方法
我正在努力理解在这种情况下使用noConflict的正确方法:使用jQuery noConflict的正确方法,jquery,Jquery,我正在努力理解在这种情况下使用noConflict的正确方法: 我的代码是加载在我无法控制的网页上的小部件 此网页可能已经包含jQuery和/或其他库,例如使用$ 我的小部件需要自己的jQuery版本(我想加载页面上已经加载的内容) 到目前为止,我的小部件工作正常,但加载后,原始网页被破坏,因为$指向我自己的jQuery版本 谢谢你的帮助 在加载“您的jQuery版本”后立即尝试运行此代码 $.noConflict(); 如果您已经重写了映射到$的上一个库,那么它不会有任何帮助。但是,如果
- 我的代码是加载在我无法控制的网页上的小部件
- 此网页可能已经包含jQuery和/或其他库,例如使用$
- 我的小部件需要自己的jQuery版本(我想加载页面上已经加载的内容)
谢谢你的帮助 在加载“您的jQuery版本”后立即尝试运行此代码
$.noConflict();
如果您已经重写了映射到$
的上一个库,那么它不会有任何帮助。但是,如果您知道以前的库是什么(并且它不是jQuery),您可以使用类似于$=MooTools
的方法将它重新映射到$
整个代码将为
$.noConflict(); // leaves jQuery available using jQuery()
$ = MooTools; // maps the original library (MooTools in this example) back to $
尝试在加载“您的jQuery版本”后立即运行此代码
$.noConflict();
如果您已经重写了映射到$
的上一个库,那么它不会有任何帮助。但是,如果您知道以前的库是什么(并且它不是jQuery),您可以使用类似于$=MooTools
的方法将它重新映射到$
整个代码将为
$.noConflict(); // leaves jQuery available using jQuery()
$ = MooTools; // maps the original library (MooTools in this example) back to $
jQuery.noConflict的存在是为了消除在使用
$
变量时与其他JavaScript库的冲突。它不会帮助您解决jQuery版本冲突。正确的使用方法是在加载jQuery的script
标记之后添加一个类似这样的script
标记:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
jQuery.noConflict();
您的小部件可能无法做到这一点(您的问题是它无法控制网页),这意味着您必须将此行为记录为小部件的一项要求。换句话说,小部件的用户必须为您调用jQuery.noConflict。jQuery.noConflict的存在是为了消除与其他JavaScript库在使用
$
变量时发生的冲突。它不会帮助您解决jQuery版本冲突。正确的使用方法是在加载jQuery的script
标记之后添加一个类似这样的script
标记:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
jQuery.noConflict();
您的小部件可能无法做到这一点(您的问题是它无法控制网页),这意味着您必须将此行为记录为小部件的一项要求。换句话说,小部件的用户必须为您调用jQuery.noConflict。将$
重置为加载jQuery之前的状态
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
因此,您可以使用$
作为当前jQuery,使用$jq
作为您的版本
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="your_jquery.js"></script>
<script type="text/javascript">
$jq = $.noConflict();
// Your jQuery is `$jq`, and the original jQuery is `$`
</script>
$jq=$.noConflict();
//您的jQuery是“$jq”,而原始jQuery是`$`
演示:将$
重置为加载jQuery之前的状态
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
// Code that uses other library's $ can follow here.
</script>
因此,您可以使用$
作为当前jQuery,使用$jq
作为您的版本
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="your_jquery.js"></script>
<script type="text/javascript">
$jq = $.noConflict();
// Your jQuery is `$jq`, and the original jQuery is `$`
</script>
$jq=$.noConflict();
//您的jQuery是“$jq”,而原始jQuery是`$`
演示:有问题的代码是什么?您当前的问题太模糊,因此如果没有更多的细节就无法回答。您自己版本的JQuery是什么意思?在一个页面中加载JQuery库两次将不起作用。当加载两个不同的JS库(例如JQuery和Mootools)时,使用JQuery noConflict。要确保您正在使用JQuery库,可以通过noConflict()访问它。@Imraan:您可以加载两个不同版本的JQuery
noConflict
返回jQuery对象,因此您可以将其分配给另一个变量。有问题的代码是什么?您当前的问题太模糊,因此如果没有更多的细节就无法回答。您自己版本的JQuery是什么意思?在一个页面中加载JQuery库两次将不起作用。当加载两个不同的JS库(例如JQuery和Mootools)时,使用JQuery noConflict。要确保您正在使用JQuery库,可以通过noConflict()访问它。@Imraan:您可以加载两个不同版本的JQuerynoConflict
返回jQuery对象,因此可以将其分配给另一个变量。