jQuery源码分析之noConflict方法
2015-10-25 14:02
836 查看
代码1:
源码如下:
总结:
(1) 如果没有参数true那么就是放弃$,如果参数是true那么连jQuery变量也被放弃了!
//因为下面函数的返回值是jQuery对象,以后用x代替$了!只是名字不同而已! var x=$.noConflict(); var $=123;//到这里$被修改为123,$被写到这里noConflict里面的代码是没有意义的! x(function() { alert($);//打印123 }) //上面把var $=123写在那个位置下面两行代码没有意义的!那么什么时候有意义呢?看下面代码2: if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; }代码2:
<script>var $=123</script> <script src="jQuery.1.11.1"></script> //有代码:_jQuery=window.jQuery,_$=window.$;这时候_jQuery=123; <script> var x=$.noConflict(); x(function() { alert($);//仍然打印123 }) </script> //上面用_jQuery保存了123以后走了这里的代码,调用库以后window.$肯定等于jQuery if ( window.$ === jQuery ) { //调用了noConflict以后,这一句代码就是window.$=123也就是$还是123,jQuery库已经放弃$了! window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; }
源码如下:
var // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$; jQuery.noConflict = ( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; };
总结:
(1) 如果没有参数true那么就是放弃$,如果参数是true那么连jQuery变量也被放弃了!
相关文章推荐
- AJAX问题:jQuery.handleError is not a function
- $.ajax()中参数详解。
- jquery滚动加载
- 夺命雷公狗jquery---15尺寸操作
- jQuery DOM操作 方法汇总
- jQuery 选择器/筛选
- 夺命雷公狗jquery---14位置操作
- jQuery 无缝切换图片列表
- 夺命雷公狗jquery---13css属性操作
- 夺命雷公狗jquery---12Class属性操作
- jQuery效果之tab
- 夺命雷公狗jquery---11属性操作
- jQuery效果之菜单
- jQuery效果之可编辑的表格
- 【jquery ,ajax,php】加载更多实例
- 使用jquery实现点击按钮弹出层和点击空白处隐藏层
- 使用jQuery的on("click")绑定事件莫名其妙地刷新页面
- jQuery选择器
- jquery瀑布流下拉加载(position定位版)
- jQuery对象和DOM对象