Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery noConflict的正确方法_Jquery - Fatal编程技术网

使用jQuery noConflict的正确方法

使用jQuery noConflict的正确方法,jquery,Jquery,我正在努力理解在这种情况下使用noConflict的正确方法: 我的代码是加载在我无法控制的网页上的小部件 此网页可能已经包含jQuery和/或其他库,例如使用$ 我的小部件需要自己的jQuery版本(我想加载页面上已经加载的内容) 到目前为止,我的小部件工作正常,但加载后,原始网页被破坏,因为$指向我自己的jQuery版本 谢谢你的帮助 在加载“您的jQuery版本”后立即尝试运行此代码 $.noConflict(); 如果您已经重写了映射到$的上一个库,那么它不会有任何帮助。但是,如果

我正在努力理解在这种情况下使用noConflict的正确方法:

  • 我的代码是加载在我无法控制的网页上的小部件
  • 此网页可能已经包含jQuery和/或其他库,例如使用$
  • 我的小部件需要自己的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:您可以加载两个不同版本的JQuery
noConflict
返回jQuery对象,因此可以将其分配给另一个变量。