兔源码网 - 专注DZ模版分享、DZ插件分享!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

jQuery 核心 - noConflict() 方法

[复制链接]
tuyuanma 发表于 2017-3-11 20:15:53 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


实例

使用 noConflict() 方法为 jQuery 变量规定新的名称:

  1. var jq=$.noConflict();
复制代码

定义和用法

noConflict() 方法让渡变量 $ 的 jQuery 控制权。

该方法释放 jQuery 对 $ 变量的控制。

该方法也可用于为 jQuery 变量规定新的自定义名称。

提示:在其他 JavaScript 库为其函数使用 $ 时,该方法很有用。


+ W) v& _0 A) [1 q3 p; {6 K语法
  1. jQuery.noConflict(removeAll)
复制代码
参数描述
removeAll布尔值。指示是否允许彻底将 jQuery 变量还原。
说明

许多 JavaScript 库使用 $ 作为函数或变量名,jQuery 也一样。在 jQuery 中,$ 仅仅是 jQuery 的别名,因此即使不使用 $ 也能保证所有功能性。假如我们需要使用 jQuery 之外的另一 JavaScript 库,我们可以通过调用 $.noConflict() 向该库返回控制权:

  1. <script type="text/javascript" src="other_lib.js"></script>; {3 M+ e% o0 l, Y' E- z
  2. <script type="text/javascript" src="jquery.js"></script>1 U# D% Y% [, N# N# [) j. [3 X
  3. 3 `$ G) W1 H. ^2 z9 ~: f6 \
  4. <script type="text/javascript">
    $ d- j$ j/ I9 ~. Y0 {
  5.   $.noConflict();
    ; e! u; }1 H* U" O% H& f
  6.   // 使用另一个库的 $ 的代码# n. d1 Q: U% ?  e; Z; j
  7. </script>
复制代码
可以与 .ready() 方法结合起来使用,来为 jQuery 对象起别名,这项技术非常有效:
  1. <script type="text/javascript" src="other_lib.js"></script>
    % W8 ]8 ?" C9 |  O- r/ i2 A" p1 |
  2. <script type="text/javascript" src="jquery.js"></script>
    * `+ |3 j6 V8 o: z

  3. 3 `, P# {$ ?+ b3 B0 P/ V: b
  4. <script type="text/javascript">
    1 ?, X5 {9 T( b) Y: K6 s. R
  5.   $.noConflict();5 g+ Z; w* H2 F
  6.   jQuery(document).ready(function($) {
    6 R. R: g9 z; I2 L- {
  7.     // 使用 jQuery $ 的代码
    1 _8 N3 p( c5 x
  8.   });# {2 V( i6 w" P/ j
  9.   // 使用其他库的 $ 的代码: `! {5 z% n- x  @- y) D1 b2 T
  10. </script>
复制代码

此外,通过向该方法传递参数 true,我们可以将 $ 和 jQuery 的控制权都交还给原来的库。用之前请考虑清楚!

这是相对于简单的 noConflict 方法更极端的版本,因为这将完全重新定义 jQuery。这通常用于一种极端的情况,比如你想要将 jQuery 嵌入一个高度冲突的环境。注意:调用此方法后极有可能导致插件失效。


$ n% V$ N* ]* Y' u  u7 B3 u! x, x( P' ^/ l. @) B5 v
实例例子 1

将 $ 引用的对象映射回原始的对象:

  1. jQuery.noConflict();
    7 C* Q; R  ^4 u. V; t6 U& j& k

  2. ) q1 J2 O& N* @" n1 \% O/ o, Y% J
  3. jQuery("div p").hide();        // 使用 jQuery
    6 u" @+ g% N  b9 X1 i7 E

  4. ! o# @+ y; b& s5 W
  5. $("content").style.display = "none";        // 使用其他库的 $()
复制代码

( Y1 A* C2 S1 _- n$ w4 u. k2 O: _
例子 2% C0 n0 o0 y# ~, z# o" T

恢复使用别名 $,然后创建并执行一个函数,在这个函数的作用域中仍然将 $ 作为 jQuery 的别名来使用。在这个函数中,原来的 $ 对象是无效的。这个函数对于大多数不依赖于其他库的插件都十分有效:

  1. jQuery.noConflict();- N; L; v7 |4 Q4 g# l, S7 h: d
  2. 2 ^8 S  i# T; j0 T! H# x/ H6 }
  3. (function($) {
    4 O7 x5 P; y. I% M- R  Q" G$ h
  4.   $(function() {
    6 n! I2 `& A+ a3 n2 Z
  5.     // 使用 $ 作为 jQuery 别名的代码$ u- M: i4 t9 t5 d/ |
  6.   });3 k& c9 T# z9 ^, P' X8 V1 `. r
  7. })(jQuery);+ g3 Y1 g: X$ g+ l, [" B! ~

  8. ; _4 A1 F4 f: R
  9. ... // 其他用 $ 作为别名的库的代码
复制代码


2 n8 D+ O- Y) T7 m% W
例子 3
5 b  I; j- ^* }  ^0 l7 D

可以将 jQuery.noConflict() 与简写的 ready 结合,使代码更紧凑:

  1. jQuery.noConflict()(function(){
    : g4 e7 K% U- n, X
  2.     // 使用 jQuery 的代码9 u" p; z  f% J
  3. });
    ! o: H9 c" f8 F1 ?: Y6 Q! s' K

  4. 3 }+ C, p" W% N0 E' l" L2 s
  5. ... // 其他库使用 $ 做别名的代码
复制代码


7 L0 K1 j, ~/ s: v/ J
例子 4

创建一个新的别名用以在接下来的库中使用 jQuery 对象:

  1. var j = jQuery.noConflict();
    9 k) x6 _3 y+ l1 {% C
  2. ! S& L+ M8 o3 U8 j
  3. j("div p").hide();        // 基于 jQuery 的代码
    % ^/ n9 Q: M8 U3 t7 D6 V& g5 r
  4. 3 g" f7 s; g8 V  E) d
  5. $("content").style.display = "none";        // 基于其他库的 $() 代码
复制代码


; p3 \- U/ ^7 ~; f
例子 5

完全将 jQuery 移到一个新的命名空间:

  1. var dom = {};
    $ }  w7 p0 ^& k+ u6 h$ ~$ L0 q/ u% U
  2. dom.query = jQuery.noConflict(true);
复制代码
结果:
  1. dom.query("div p").hide();        // 新 jQuery 的代码6 x3 j; f- d! l0 K/ }) K

  2. - e  n* y( w3 w
  3. $("content").style.display = "none";        // 另一个库 $() 的代码( `7 w! I1 X" e4 N  c  E! R
  4. 8 y1 n3 k9 n" [9 L7 h, L: A3 A
  5. jQuery("div > p").hide();        // 另一个版本 jQuery 的代码
复制代码


1 V% e5 o6 P4 O4 C) k
- p  I( x% ^! t' E. n- j# P. Q- w

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 ( 赣ICP备17001544号 公网安备36112102000036号 )

兔源码 QQ交流群:493651246  GMT+8, 2019-12-7 05:34
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

     
快速回复 返回顶部 返回列表