jQuery源码分析:如何解决jQuery、$关键字与其它脚本框架的冲突问题?
来源:互联网 发布:技术支持 恒久软件 编辑:程序博客网 时间:2024/06/10 15:10
将jQuery脚本简化如下,可能看得更清楚jQuery的实现:先将(通过window全局变量来获取)外部$
、jQuery
对象缓存起来。
然后调用noConflict方法来恢复jquery.js加载之前的$、jQuery对象值。
// 请务必注意执行顺序(function(window, undefined){ var jQuery = function(){ //... }, _$ = window.$, // _$指向外部$ _jQuery = window.jQuery; // _jQuery指向外部jQuery //... jQuery.extend({ noConflict: function(deep){ if(window.$ === jQuery) { window.$ = _$; } if(deep && window.jQuery === jQuery) { window.jQuery = _jQuery; } } }); //... // 用本地jQuery覆盖外部jQuery、$(其初衷当然不是“覆盖”,只是保证在外部可以直接使用jQuery、$) winodw.jQuery = window.$ = jQuery; })(window);
默认情况下,同样的使用jQuery
、$
等相同关键字的脚本框架,后导入框架的总是控制优先权。
在以下两个场景,以jQuery为核心,如何正常地使用jQuery与其它框架:
- jQuery在前时,$关键字被其它框架覆盖。要想使用jQuery,只能使用jQuery关键字。
其它框架不太可能使用jQuery关键字。
<script src="jquery.js" type="text/javascript" /> <script src="xxx.js" type="text/javascript" /> <script type="text/javascript"> // jQuery关键字$被框架的xxx.js中的$被覆盖 </script>
- jQuery在后时,jQuery取得优先权。但是如何使用xxx.js中的$关键字呢?
<script src="xxx.js" type="text/javascript" /> <script src="jquery.js" type="text/javascript" /> <script type="text/javascript"> // 问题1. xxx.js的$关键字,被jQuery.js覆盖,怎么办? // jQuery仍然用jQuery关键字,xxx.js使用$的做法如下 jQuery.noConflict(); </script>
如果jquery.js在后,覆盖了其它的框架使用$、jQuery关键字,即jquery.js不能再使用这两个关键字,怎么解决了?当然是取别名了。
//注意指定参数true,才会将jQuery关键字转让出去。var jq = jQuery.noConflict(true);
0 0
- jQuery源码分析:如何解决jQuery、$关键字与其它脚本框架的冲突问题?
- 解决jquery与其它库的冲突
- 解决jquery 与其它库的冲突
- jquery使用$与其它js框架的冲突解决办法
- jQuery与其它库冲突的解决方法
- jQuery与其它库冲突的解决方法
- jquery学习笔记(3)-----jquery与其它库冲突解决
- jQuery与其他JS框架冲突解决
- 解决 jQuery 符号 $ 与其他 javascript 库、框架冲突的问题
- jquery与其他js冲突问题 解决
- 解决jquery与其他库的冲突
- 解决jquery与其他库的冲突
- jquery与其它js文件冲突解决办法
- jquery与其它插件冲突时
- 关于Jquery的noConflict()方法,解决Jquery库与其他库冲突问题
- Jquery与其它js框架(MooTools以及Prototype、Dojo、YUI等等)之间共享冲突的解决办法
- 解决jQuery与其他库冲突的方法
- jQuery 随笔 之 与其他JS库冲突的解决
- Tuple and Tie
- cmd运行Java程序的问题
- LeetCode78. Subsets
- 学习笔记-----listview中含有togglebutton
- 最简单的基于FFMPEG的转码程序
- jQuery源码分析:如何解决jQuery、$关键字与其它脚本框架的冲突问题?
- Linux多线程—条件变量
- 观台大朱云汉教授《中国大陆的兴起与全球政治经济秩序的重组》有感
- 文章标题
- 《Learn Python the hard way》学习记录
- 第十章编程练习(4)
- 线程的同步之条件变量
- Linux IPC之共享内存
- 个人笔记 jq 01 jq的方式实现取消文本框只读