当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Query的开始--全局变量,noconflict和兼容各种js的初始化方法

发表于: 2015-07-08   作者:kvhur   来源:转载   浏览:
摘要: 这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解  完整资源: http://www.gbtags.com/gb/share/5640.htm jQuery 源码:   (
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。
还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解
jQuery 源码:
 
  1. (function(global, factory ){
  2. // 平时的时候module是undefined,
  3. if(typeofmodule==="object"&&typeofmodule.exports ==="object"){
  4. // For CommonJS and CommonJS-like environments where a proper window is present,
  5. // execute the factory and get jQuery
  6. // For environments that do not inherently posses a window with a document
  7. // (such as Node.js), expose a jQuery-making factory as module.exports
  8. // This accentuates the need for the creation of a real window
  9. // e.g. var jQuery = require("jquery")(window);
  10. // See ticket #14549 for more info
  11. // 如果不是undefined,说明调用了一些特殊的js文件,如Node.js或者requiredJs,
  12. // 再用到这些的时候,是需要用module.exports来处理的
  13. module.exports =global.document ?
  14. factory(global,true):// 如果是requiredJS之类的,那么是不需要把jQuery对象作为全局变量的,所以noGlobal是true
  15. function( w ){
  16. if(!w.document ){
  17. thrownewError("jQuery requires a window with a document");
  18. }
  19. return factory( w );
  20. };
  21. }else{
  22. // 这个是默认的调用方法
  23. factory(global);
  24. }
  25. // Pass this if window is not defined yet
  26. }(typeof window !=="undefined"? window :this,function( window, noGlobal ){
  27. var
  28. // Map over jQuery in case of overwrite
  29. // 获取当前的window.jQuery对象,保存起来,用于noConflict
  30. _jQuery = window.jQuery,
  31. // Map over the $ in case of overwrite
  32. // 获取当前的window.$对象,并保存起来,用于noConflict
  33. _$ = window.$;
  34. // 获取jQuery对象,并把全局变量还给原本的值
  35. // 这样做的一个好处是,如果需要用到两个版本的jQuery,那么就可以通过这个来生成两个版本的jQuery对象、
  36. // 或者如果有其他的js插件同样占用了$这个符号,那么就可以通过noConflict来还原。
  37. jQuery.noConflict =function( deep ){
  38. // 如果用noConflict的话,那么就会让出window.$对象给原本的值
  39. if( window.$ === jQuery ){
  40. window.$ = _$;
  41. }
  42. // 如果用deep的话,那么同时也会让出window.jQuery对象给原本的值
  43. if( deep && window.jQuery === jQuery ){
  44. window.jQuery = _jQuery;
  45. }
  46. return jQuery;
  47. };
  48. // Expose jQuery and $ identifiers, even in
  49. // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
  50. // and CommonJS for browser emulators (#13566)
  51. // 如果noGlobal为null的话(反则为true),那么就把jQuery设置为全局变量来使用
  52. if(typeof noGlobal === strundefined ){
  53. window.jQuery = window.$ = jQuery;
  54. }
  55. }));
 
 
 
粘贴一点w3school的noconflict代码(略作修改)
  1. <scripttype="text/javascript"src="jquery.1.10.js"></script>
  2. <scripttype="text/javascript"src="jquery.11.js"></script>
  3. <scripttype="text/javascript">
  4. var jq = $.noConflict();
  5. // 在下面使用的$为jquery.1.10的代码
  6. // jq和jQuery使用的是1.11的代码
  7. </script>
 
 
 
或者另外一种方法
 
 

Query的开始--全局变量,noconflict和兼容各种js的初始化方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
本文将介绍如何使用JS生成二维码,兼容各种浏览器及手机端,支持中文。 代码如下: <!DOCTYPE ht
未初始化全局变量   为下一篇介绍进程内存分布做准备,这一篇先来介绍一下未初始化全局变量:  
各种排序算法的对比总结如下表所示: 冒泡排序: 它重复地走访过要排序的数列,一次比较两个元素,
ps.由于获取宽和高是一样的道理,只是把字面上height变成width,所以代码只示例高度 首先是获取浏览
ps.由于获取宽和高是一样的道理,只是把字面上height变成width,所以代码只示例高度 首先是获取浏览
本文是一篇关于初始化全局变量的帖子 实例说明C语言中初始化和未初始化的全局变量地点不同的段 一个
最近在做图片上传的一个前台页面,上传图片功能虽然很简单,但是需要我们学习的地方很多。在上传图
作者:阿波 链接:http://blog.csdn.net/livelylittlefish/article/details/7247080 Content 0.序 1
虽然说响应式设计的理想状态是,需对pc/移动各种终端进行响应;但是现实是高分辨率的pc端与手机终端
踩过的坑 遇到CronTriggerFactoryBean class notfound 原因是使用3.1以下的版本,我使用的是3.06发
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号