加载 jQuery 后如何访问存根美元函数
How is the stub dollar function accessed after jQuery is loaded?
就我看到循环逻辑而言,我对它是如何工作的有点困惑:
-
定义存根美元函数:
window.q=[]; window.$=function(f){ q.push(f); };
-
在 jQuery 加载后,立即将任何推送到存根上的函数添加到 jquery on load dollar 函数中:
$.each(q,function(index,f){ $(f) });
如何正确访问这两个美元功能? jQuery加载后,它不是已经接管了美元函数吗?
您的存根$
函数将其接收的每个函数推送到数组q
。
当 jQuery 加载时,它会用自己的$
替换你的,但它不会覆盖你的q
数组。
最终的代码使用 jQuery 的 $.each()
方法来迭代你的q
数组,在每个函数上调用 jQuery 的 $
函数(循环中f
(。所以就好像你一开始就使用 jQuery 的$
调用$(f)
一样。当这样使用时,$
是$(document).ready()
的快捷方式。
这是一种 onready 方法的延迟注册。
它是如何工作的
- 我们注册一个存根
$
方法,该方法将所有 onready 方法转储到全局数组中 - 一旦 jquery 被加载
$
被替换为 jQuery 对象,但全局数组q
仍然在加载之前将所有 onready 方法传递给 jquery - 当 jQuery onready 被触发时,我们遍历全局数组
q
并调用每个注册的函数。
jQuery加载后,它不是已经接管了美元函数吗?
这就是整个想法;在<head>
中创建的临时函数为jQuery创建一个只实现jQuery(fn)
的存根;任何在此定义和加载jQuery之间使用$(function() { ... })
的代码都将保留在window.q
中。
加载 jQuery 后,$
将被替换,但保留的回调函数列表仍然可用,并将在批处理操作中处理。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 从ng模板访问作用域
- 如何访问UIWebView'的子窗口上下文
- 使用Javascript获取Twitter访问令牌
- 加载 jQuery 后如何访问存根美元函数