- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jQuery是样工作的
jQuery是怎样工作的
介绍
jQuery是时下最为流行的JavaScript库。它使用CSS选择器样式语法获取文档对象模型(DOM)中的元素到已包装的对象集合中,然后使用jQuery方法操纵这些元素来达到不同的效果。尽管jQuery的使用是非常方便和直观的,我们还是需要弄懂它背后的机制来更好的掌握它。
jQuery中的基本概念
在我们深入研究jQuery库前,需要了解一些jQuery中的一些基本概念。
$/jQuery对象和$()/jQuery()方法
$/jQuery对象是一个全局对象,通过它来访问所有的jQuery方法。
它也是一个方法对象,所以使用它最通常的方法是通过$/jQuery()方法。$/jQuery()方法可以用来选择DOM中的一组元素。它也是一个包装函数,一个$/jQuery()方法的简单例子:
$(“#ABC”);
or
jQuery(“#ABC”);
传给$/jQuery()方法的参数是选择器( selector)。选择器是一个有CSS选择器样式语法的表达式。在上面的例子中,我要选择id等于 #ABC 的元素
包装集合(Wrapped set)
包装集合是一个类似数组的结构,里面包含了所有已选择的DOM元素。上面的$(#ABC)返回了一个包装集合。你可以像遍历数组那样访问包装集合或者通过索引访问。更重要的是,你可以在所有被选择的元素上应用jQuery方法。
jQuery $()/jQuery()方法在后台是怎么工作的
因为大多数jQuery方法调用都是以$()/jQuery()开头的,所以我们有必要弄懂在这后面发生了什么。在深入讨论前,我们先看看$()/jQuery()对象是在哪定义的。$/jQuery对象是jQuery方法的访问点,是在jQuery中定义的一个全局方法变量。这是在jQuery源码中定义它的那一行:
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
window对象代表浏览器中打开的窗口,把$/jQuery放到window下,它就得定义为一个全局对象并且可以在当前打开的窗口中访问
但是,上面一行源码最的jQuery是什么?它被声明在jQuery库开始的地方。
var jQuery = (function() {
…
这所有的魔法都发生在jQuery对象的声明表达式中,如果你直接往里面看,可能会迷茫,所以让我来简化它吧。
简化版jQuery库源代码
警告:简化版本仅仅为了研究目的,它不并具有jQuery提供的所有功能,不要把它用在真实环境中。
var jQuery = (function ()
{
// Define a local copy of “k”
var k = function (selector, context)
{
// The k object is actually just the init constructor enhanced
var kobj = new k.fn.init(selector, context);
return kobj;
};
//Define k’s fn prototype, specially contains init method
k.fn = k.prototype = {
init: function (selector, context)
{
if (!selector)
{
return this;
}
}
};
// Give the init function the “k” prototype for later instantiation
k.fn.init.prototype = k.fn;
// Return “k” to the global object
return k;
})();
从上面的额源码你可以看到jQuery函数变量被定义为一个匿名方法的执行结果。
小贴士:怎样定义匿名函数 在Javascript中你可以定义一个匿名函数并马上调用它 例如, (function () { alert(“hello world”); })(); 通过把函数表达式 function() { alert(“hello word”); } 放进括号中 (function() { alert(“hello world”); }) 你可以在外面再加个括号马上调用它
在这个匿名函数内部定
您可能关注的文档
最近下载
- 高中数学切线缩放解题策略上课讲义.pdf VIP
- 2022-2023学年四川省成都市武侯区西川中学九年级(上)期中数学试卷.docx VIP
- 北京市2018年中考英语真题(含答案).pdf VIP
- 2020-2021学年四川省成都市武侯区西川中学九年级(上)第四次月考数学试卷.doc VIP
- XX学校关于违规征订推荐教辅教材管理制度.docx VIP
- 从居室墓和石雕像看兴隆洼文化的祖先崇拜.pdf VIP
- 综合与实践 设计学校田径运动会比赛场地课件(共17张PPT) 2024-2025学年人教版数学七年级上册.pptx VIP
- 高考满分作文议论文范文10篇.pdf VIP
- 江西农村信用社农商银行.doc VIP
- 小学学校规范教材和教辅资料征订管理暂行办法.docx VIP
文档评论(0)