最赞回答 / 逍遥游_xj
原因是:因为先加载的JQuery后调用的document.addEventListener添加DOMContentLoaded。注意jQuery.ready.promise里面的completed如下其实就是jQuery.ready()。function completed() { document.removeEventListener( "DOMContentLoaded", completed, false ); window.removeEventListener( "load", complet...
2015-02-03
已采纳回答 / 艾伦Aaron
首先,回调函数是从异步队列分离出来的,那么就是无缝贴合Deferred的设计可以查看下Deferred模块会有这么一段代码<...code...>这里设计到规范的接口,done | fail | progress方法都是通过jQuery.Callba...
2015-01-04
已采纳回答 / 艾伦Aaron
这是跟后面的静态与实例设计有关系简单的说 jQuery底层是扩展的静态方法,然后共享给实例调用开发者通过通过选择器创建的jQuery对象,是实例对象,在原型上大部分的接口都是用来做一个过滤包装的处理,真正的处理都是通过静态方法实现的。
2014-12-24
已采纳回答 / 艾伦Aaron
我们先看看$.noConflict()方法在加载jquery的时候做了一个动作 _$ = window.$; 保存了当前的$的引用为_$, 因为此时可能上一个script脚本可能存在$的命名空间。所以在当前加载的时候就保存起来了我们调用的时候就干了一件事把当前的jquery的命名空间$ 替换成_$,达到了交换的目的,可能话没有表述清楚
2014-12-24
最赞回答 / MrzHuo
var F = function (e) { "use strict"; //这行是定义此函数使用的是js严格模式 ... //中间代码应该是对e进行扩展, 类似 e.newFunction = function () {}; return e; //返回已经拓展好的e对象}(F || {}); //函数自执行, F || {}是短路使用, 如果F存在 e == F, 如果不存在 e == {}/* 这样的主要目的就是扩展F这个对象, 如果已经存在F对象了, 就对F对象...
2014-12-14
已采纳回答 / 艾伦Aaron
//通过闭包隔离出$ ;(function($) { if ($) { show("通过闭包隔离后,转为局部变量$存在") } })(jQuery);因为外部的$被入侵了, 如果想在局部使用$,可以采用这种方式
2014-12-14