jquery链式调用与show知识浅析

jquery链式调用与show知识浅析

ID:27761042

大小:75.00 KB

页数:10页

时间:2018-12-05

jquery链式调用与show知识浅析_第1页
jquery链式调用与show知识浅析_第2页
jquery链式调用与show知识浅析_第3页
jquery链式调用与show知识浅析_第4页
jquery链式调用与show知识浅析_第5页
资源描述:

《jquery链式调用与show知识浅析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、jQuery链式调用与show知识浅析这篇文章主要介绍了jQuery的XX如何实现?——2.show与链式调用的相关资料,非常具有参考借鉴价值,感兴趣的朋友一起学习吧jQuery使用许久了,但是有一些API的实现实在想不通。下面将使用简化的代码来介绍,主要关注jQuery的实现思想。相较于上一篇,代码更新了:2广78(function(window,undefined){functionjQuery(sel){returnnewjQuery.prototype.init(sel):jQuery.

2、prototype={constructor:jQuery,init:function(sel){if(typeofsel===’string’){varthat=this;varnodeList=document.querySelectorAll(sel);Array,prototype.forEach,call(nodeList,function(val,i){that[i]=val:})this,selector=sel:this,length=nodeList.length;}},sho

3、w:function(){Array.prototype.forEach.call(this,funotion(node){//if(node.style)continue;//textnode没有style//删除style上的display:nonevardisplay=node.style,display;if(display===’none’){//dispaly置为空后,css如果有display则css的生效//否则默认的生效node.style,display=’’;//元素dis

4、play值为非默认值情况,需要还原为oldDisplay:div-gt;display:inline-block//或检测css上的display是否为noneif(node,style,display===’’

5、

6、isHidden(node)){"有oldDispaly则设置if(node.oldDisplay)node.style,display=node.oldDisplay;//没有则设置为元素默认值或元素当前值elsenode,style.display=getDisplay(node

7、);}})//链式调用returnthis;},hide:funotion(){Array,prototype.forEach.call(this,function(node){if(!isHidden(node)){//jQuery使用其cache机制存储信息,这里简化一下//直接挂载在对应的dom下node.oldDisplay=getDisplay(node);node.style,display=’none’;})returnthis;functiongetDisplay(node){v

8、ardisplay=window.getComputedStyle(node,nu11).getPropertyValue(’display’);if(display===’none’){vardom=document.createElement(node.nodeName)://插入到body中document.body,appendChild(dom);//即可获取到元素display的默认值vardisplay=window.getComputedStyle(dom,nul1).getPr

9、opertyValue(’display’);document,body.removeChild(dom);}returndisplay;}functionisHidden(node){//忽略未append进document的元素这种隐藏情况:$(’It;divgt:blocklt;/divgt;’)未appendreturnwindow.getComputedStyle(node,null).getPropertyValue(’display’)===’none’;jQuery.protot

10、ype.init.prototype=jQuery.prototype:window.$=jQuery;})(window):先拿hide函数热身一下。如上篇提到的,jQuery会将获取到的nodeList处理成数组,所以一上来,我们用forEach处理数组里的每一个node节点。接下来,我们只需要将每一个节点的style,display置为’none’即可隐藏。很简单,对吧?(000)。oldDisplay和returnthis先不管M▽)、hide:function(){Array,prot

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。