jQuery原理
基于jquery的tab切换js原理
html代码:复制代码代码如下:<divclass="details"><ulclass="tab"><liclass="on"rel="a1"><b>个人资料</b></li><lirel="a2"><b>帐号维护</b></li><lirel="a3"><
日期 2023-06-12 10:48:40jQuery的实现原理的模拟代码-2数据部分
这个数据当然要通过属性来进行存取,但是,有多个属性怎么办呢?,要定义多个属性吗?,属性的名字叫什么呢?会不会与其他的属性有冲突呢?在jQuery中,针对DOM对象扩展的私有数据可以用一个对象来表示,多个数据就使用这个对象的多个属性来表示。为了能够通过DOM对象找到这个扩展数据对象,而不会与其他现有的属性冲突,在jQuery中通过expando这个常量表示扩展对象的属性名,这个expando的值是
日期 2023-06-12 10:48:40jQuery的实现原理的模拟代码-4重要的扩展函数extend
jQuery.fn.extend提供了一个扩展机制,可以方便我们通过一个或者多个示例对象来扩展某个对象。如果没有指定被扩展的对象,那么将扩展到自己身上。jQuery.extend也可以通过jQuery.fn.extend使用,在jQuery中使用很多,用来为一个目标对象扩展成员,扩展的成员来自于一系列参考对象。这样,如果我们需要为jQuery.fn扩展成员removeData,就可以这样进行。复
日期 2023-06-12 10:48:40jQuery的实现原理的模拟代码-5Ajax
复制代码代码如下://创建XHR对象varxhr;if(window.XMLHttpRequest){xhr=newXMLHttpRequest();}elseif(window.ActiveXObject){xhr=newActiveXObject("Msxml2.XMLHTTP");}else{thrownewError("Ajaxisnotsupportedbythisbrowser");
日期 2023-06-12 10:48:40jQuery实现原理的模拟代码-6代码下载
演示代码:复制代码代码如下:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><t
日期 2023-06-12 10:48:40jquery绑定原理简单解析与实现代码分享
jq里面有一个data的方法,给dom元素绑定相关的数据的。当给dom用jq的方法绑定了事件,会生成对应的时间列表可以看下面的例子(请在firefox中查看因为firefox中对象支持toSource())复制代码代码如下:<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="t
日期 2023-06-12 10:48:40jQuery+CSS半开折叠效果原理及代码(自写)
一个项目想用jQuery做一个可以半折叠的DIV元素,苦于jQueryUI中accordion没有提供相关的方法,就自己写了个。以前使用jQueryUI的时候发现能够用的accordion全部折叠起来了,没办法设置折叠的最小高度。代码质量很低,希望老鸟能够指点指点。下图是效果展示,能够借由jQuery的函数展开收缩 复制代码代码如下://author:hlhr//require:Jquery1.
日期 2023-06-12 10:48:40关于jQuery对象数据缓存Cache原理以及jQuery.data详解
网上有很多教你怎么使用jQuery.data(..)来实现数据缓存,但有两个用户经常使用的data([key],[value])和jQuery.data(element,[key],[value])几乎没有什么文章说清楚它们两的区别,所以我用到了,研究下分享给大家。$("").data([key],[value])与jQuery.data(element,[key],[value])的区别这两个
日期 2023-06-12 10:48:40Jquery动态进行图片缩略的原理及实现
复制代码代码如下://页面加载完执行resizeImage()函数$(document).ready(resizeImage());functionresizeImage(){$(".picaimg").each(function(){//加载图片至内存,完成后执行$(this).load(function(){//获得原始图片高宽varimgWidth=$(this).width();vari
日期 2023-06-12 10:48:40jQuery实现图片放大预览实现原理及代码
对于一些比较小的图片,通过鼠标移动到图片上进行放大显示,原理很简单,就是将图片显示的尺寸变大后放在浏览器的一个指定位置,从而实现图片的放大预览。以下是代码:复制代码代码如下:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.
日期 2023-06-12 10:48:40Jquery点击按钮自动高亮实现原理及代码
其实原理很简单,我们点击的时候我们给元素加上一个自定义的attr,加上后便会有有一个匹配的样式去自动适配背景,几秒后去掉该样式恢复原状首先在自己的js中拓展一个方法hoverEl复制代码代码如下:$.extend($.fn,{hoverEl:function(){var_this=$(this);var_t=setTimeout(function(){_this.attr("hover","on
日期 2023-06-12 10:48:40jquery的ajax跨域请求原理和示例
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发JQuery对于Ajax的跨域请求有两类解决方案,不过都是只支持get方式。分别是JQuery的jquery.ajaxjsonp格式和jquery.getScript方式。 什么是jsonp格式呢?API原文:
日期 2023-06-12 10:48:40jquery引用方法时传递参数原理分析
经常到网上去下载大牛们写的js插件。每次只需将js引用并设置下变量就行了,但一直没搞明白原理(主要是大牛们的代码太简练了-,-)。 这次弄清了如何传递、设置多个(很多个)参数。 如方法为functionlunbo(){}; 在调用、设置的时候写: lunbo({ speed:200, wrapper:"#id", ease:"easing" }) 则,在方法内获取的时候: f
日期 2023-06-12 10:48:40jQuery截取指定长度字符串的实现原理及代码
截取指定长度字符串操作在网站建设中大量使用,尤其是在新闻列表这种类型的操作中大量应用。 下面就是一个截取字符串代码实例: <!DOCTYPEHTML> <html> <head> <metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/> <metaname="autho
日期 2023-06-12 10:48:40jQuery源码分析系列(35) : Ajax - jsonp的实现与原理
ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加<script>标签来调用服务器提供的js脚本 json核心就是:允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。 jquery ext dojo这类库的实现
日期 2023-06-12 10:48:40《jQuery技术内幕:深入解析jQuery架构设计与实现原理》
《jQuery技术内幕:深入解析jQuery架构设计与实现原理》 基本信息 作者: 高云 出版社:机械工业出版社 ISBN:9787111440826 上架时间:2014-1-10 出版日期:2014 年1月 开本:16开 页码:1 版次:1-1 所属分类:计算机 更多关于》》》 《jQuery技术内幕:深入解析jQuery架构设计与实现原理》
日期 2023-06-12 10:48:40jquery插件--ajaxfileupload.js上传文件原理分析
英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的。 [javascript] view plain copy jQuery.extend({ createUploadIframe: function (id,&n
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 1.1 设计理念
1.1 设计理念 jQuery是一款革命性的JavaScript库,秉承着“以用为本”的设计理念,倡导“写更少的代码,做更多的事”(write less, do more),极大地提升了JavaScript开发体验。 jQuery的核心特性可以总结为: 兼容主流浏览器,支持IE 6.0+、Chrome、Firefox 3.6+、Safari 5.0+、Opera等。 具有独特的链式语法和短
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 1.2 总体架构
1.2 总体架构 jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块,如图1-1所示,图中还展示了模块之间的主要依赖关系。 来看看图1-1中各个模块的功能和依赖关系。 在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQu
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 1.4 总结
1.4 总结 在本章的前半部分,对jQuery的总体架构进行了梳理,并对各个模块的分类、功能和主要依赖关系做了简要介绍。通过这些介绍,读者已经对jQuery的代码有了整体上的认识。 在后半部分,则以提问的方式对包裹jQuery代码的自调用匿名函数进行了分析,扫除了读者阅读jQuery源码的第一道障碍。
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.3 jQuery.fn.init( selector, context, rootjQuery )
2.3.1 12个分支 构造函数jQuery.fn.init()负责解析参数selector和context的类型,并执行相应的逻辑,最后返回jQuery.fn.init()的实例。参数selector和context共有12个有效分支,如表2-1所示。 表2-1 参数selector和context的12个分支 selector context 示 例 1
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.5 jQuery.clean( elems, context, fragment, scripts )
2.5.1 实现原理 方法jQuery.clean( elems, context, fragment, scripts )负责把HTML代码转换成DOM元素,并提取其中的script元素。该方法先创建一个临时的div元素,并将其插入一个安全文档片段中,然后把HTML代码赋值给div元素的innerHTML属性,浏览器会自动生成DOM元素,最后解析div元素的子元素得到转换后的DOM元素。 安
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 2.7 原型属性和方法
2.7 原型属性和方法 在构造jQuery对象模块时,除了2.3节和2.6节已经介绍和分析的jQuery.fn.init()和jQuery.fn.extend()外,还定义了一些其他的原型属性和方法,其整体源码结构如代码清单2-2所示。 代码清单2-2 原型属性和方法 97 jQuery.fn = jQuery.prototype = { 98 constructor: jQ
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.4 Sizzle( selector, context, results, seed )
context, results, seed ) 函数Sizzle( selector, context, results, seed )用于查找与选择器表达式selector匹配的元素集合。该函数是选择器引擎的入口。 函数Sizzle( selector, context, results, seed )执行的6个关键步骤如下: 1)解析块表达式和块间关系符。 2)如果存在位置伪类,则从
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.6 Sizzle.find( expr, context, isXML )
context, isXML ) 方法Sizzle.find( expr, context, isXML )负责查找与块表达式匹配的元素集合。该方法会按照表达式类型数组Sizzle.selectors.order规定的查找顺序(ID、CLASS、NAME、TAG)逐个尝试查找,如果未找到,则查找上下文的所有后代元素(*)。 图3-3 Sizzle( selector, context,
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.8 Sizzle.selectors.relative
3.8 Sizzle.selectors.relative 对象Sizzle.selectors.relative中存放了块间关系符和对应的块间关系过滤函数,称为“块间关系过滤函数集”。 块间关系符共有4种,其含义和过滤方式如表3-2所示。 图3-6 Sizzle.filter( expr, set, inplace, not )的执行过程 表3-2 块间关系符的含义和过滤方式 序
日期 2023-06-12 10:48:40jQuery技术内幕:深入解析jQuery架构设计与实现原理. 3.11 便捷方法
expr, set ) 便捷方法Sizzle.matches( expr, set )使用指定的选择器表达式expr对元素集合set进行过滤,并返回过滤结果。 该方法通过简单地调用函数Sizzle( selector, context, results, seed )来实现,调用时会将元素集合set作为参数seed传入。 相关代码如下所示: 4043 Sizzle.matches = f
日期 2023-06-12 10:48:40使用jQuery实现图片懒加载原理
在网页中,常常需要用到图片,而图片需要消耗较大的流量。正常情况下,浏览器会解析整个HTML代码,然后从上到下依次加载<img src="xxx">的图片标签。如果页面很长,隐藏在页面下方的图片其实已经被浏览器加载了。如果用户不向下滚动页面,就没有看到这些图片,相当于白白浪费了图片的流量。 所以,淘宝、京东这些流量非常巨大的电商,商品介绍页又必须有大量的图片,因此,这些页面的图片都是“
日期 2023-06-12 10:48:40