- 博客(228)
- 资源 (26)
- 收藏
- 关注
原创 jQuery源码分析之jQuery.event.remove方法
方法的源码分析如下:remove: function( elem, types, handler, selector, mappedTypes ) { var j, handleObj, tmp, origCount, t, events, special, handlers, type, namespaces, origType, //获取该元素的jQuery内部
2015-10-17 10:44:51 1095 1
原创 jQuery源码分析之jQuery.event.trigger及jQuery.Event十问
首先我们给出一个例子:HTML部分: JS部分:$("#n1").on("click",function(){alert("n1 ")});$("#n2").on("click",function(){alert("n2 ")});$("#n3")[0].onclick=function(){ alert("click1 invoked!"); retur
2015-10-15 15:59:29 3329 1
原创 jQuery源码分析之jQuery.event.add和jQuery.event.dispatch十一问
dispatch方法源码:var rnotwhite = (/\S+/g);var rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;var strundefined=undefined;var slice=[].slice;//当点击对象时候就会调用下面的eventHandle对象,传入的参数是Event对象!jQuery.event.dispatc
2015-10-14 17:00:54 3281
原创 jQuery源码分析之jQuery.even.handlers八问
首先给出测试用例:HTML部分: 给出JS部分代码:var handlers1=function( event, handlers ) { var sel, handleObj, matches, i, handlerQueue = [], //获取这个数组的delegateCount表示delegate了几个对象 delegateC
2015-10-14 15:20:43 891
原创 jQuery源码分析之buildFragment方法和clone方法
buildFragment方法源码:var rxhtmlTag = /]*)\/>/gi;var strundefined=undefined;var rtagName = /<([\w:]+)/;var rtbody = /<tbody/i;var rhtml = /<|&#?\w+;/;var rscriptType = /^$|\/(?:java|ecma)script/i;
2015-10-13 18:38:17 1784
原创 jQuery源码分析之prop和removeProp方法
DOM对象实例方法prop源码: prop: function( name, value ) { return access( this, jQuery.prop, name, value, arguments.length > 1 ); }如果传入一个参数,那么这时候value是undefined,第五个参数是false,为了方便我们还是附上access源码:如果是获取属性(val
2015-10-13 15:10:44 1626
原创 jQuery源码分析之removeAttr方法和attr方法
jQuery.removeAttr函数源码测试:var rnotwhite = (/\S+/g); var propFix ={ "for": "htmlFor", "class": "className" }; attrHandle = jQuery.expr.attrHandle; ruseDefault = /^(?:checked|selected)$/i; get
2015-10-13 14:05:21 2758
转载 jQuery support 源码解读
jquery support主要是检测浏览器兼容性,支持力度的方法,用于展示不同浏览器各自特性和bug的属性集合。作为一个静态成员,提供给jquery内部函数,告诉他们某些功能是否能用。避免了以往通过检测浏览器版本做修改。 可以直接调用jQuery.support来检测某些功能,通过查看其源代码我们可以更深入的了解各个浏览器之间的区别。特别是针对IE,还有webkit的bug,都能让我们受益
2015-10-13 10:22:55 638 1
原创 jQuery源码分析之wrap,wrapInner,wrapAll,unwrap方法
首先我们回忆一下each实例方法的用法:$(document).ready(function(){ $("button").click(function(){ $("li").each(function(i,elem){ //首先这个each实例函数中,第一个参数是调用对象下标,第二个参数是调用对象DOM元素 //this指的是调用对象的DOM元素!
2015-10-12 13:51:48 1204
原创 jQuery源码分析之remove和detach方法的区别
请提前阅读:点击打开链接detach源码分析:detach: function( selector ) { return this.remove( selector, true ); }可见detach内部调用的是remove函数,同时把selector传入remove方法,但是第二个参数是true,所以remove方法中的keepData是true表示不会调用里面的cleanDa
2015-10-12 10:56:49 1101
原创 jQuery源码分析之empty和remove方法四问
测试代码1:把id为first下面所有的子元素移除 $(document).ready(function(){ var ps=document.getElementById("first"); while(ps.firstChild) { ps.removeChild(ps.
2015-10-12 09:59:24 1824 1
原创 jQuery源码分析之appendTo,prependTo,insertBefore,insertAfter,replaceWith函数
源码如下:请提前阅读阅读var deletedIds = [];var push = deletedIds.push;jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith"}, f
2015-10-12 09:19:13 1177
原创 domManip之prepend,append,before,after,replaceWith方法
prepend源码解析(domManip参见博客打开):CodePlayer var $n1 = $("#n1");//将一个strong标记追加到n1内部的起始位置$n1.prepend( '追加内容' );alert($("#n1")[0].firstChild.id);//打印test,说明prepend是在第一个子元素前面插入的prepend: funct
2015-10-11 16:09:30 812
原创 jQuery源码测试笔记之domManip函数
代码1:domManip调用的其它函数和正则表达式:var concat=[].concat;var strundefined=undefined;var rscriptTypeMasked = /^true\/(.*)/;var rscriptType = /^$|\/(?:java|ecma)script/i;var rcleanScript = /^\s*\s*$/g;//jQue
2015-10-11 13:10:00 743 1
原创 jQuery的access方法测试笔记
测试代码1值access与普通对象的关系:1111111111var access1 = jQuery.access1 = function( elems, fn, key, value, chainable, emptyGet, raw ) { var i = 0, length = elems.length, //第三个参数是可选的,通过它走不同的逻辑 bulk =
2015-10-10 18:57:03 1949 2
原创 jQuery的Deferred对象测试笔记以及源码分析
官方地址见:点击打开链接 测试代码1:(deferred.always)always参数可以是一个function对象也可以是一个function数组,当Deferred对象resolve或者reject那么该函数会被调用。因为deferred.always()方法返回一个Deferred对象,所以其它的Deferred的方法可以继续调用,也包括继续调用always方法,当Deferred
2015-10-09 14:27:52 1592 1
原创 jQuery.Callbacks的测试代码总结
//jQuery.Callbacks函数 //调用方式:jQuery.Callbacks("once memory").add //详见:点击打开链接 /*callbacks里面添加了两次f函数,但是fire()时候只会调用一次,也就是由于两次添加的函数相同,那么会检测到重复的调用。同时jQuery.Callbacks1("unique")调用时候会把options["unique
2015-10-09 10:10:07 780 1
原创 jQuery.when()方法测试笔记及源码分析
/* 测试代码1:(如果传入when的不是Deferred也不是Promise对象,那么马上执行done方法,done方法会被传入初始参数也就是传入when方法的参数同时fail方法永远不会被执行,因为当传入的不是Deferred也不是Promise时候,会被当作resolved所以不会是rejected)$.when( { testing: 123 } ).done
2015-10-09 09:15:49 1973 1
原创 jQuery源码分析之closest,has,addBack,addSelf,add方法
closest源码分析: //调用方式:jQueryObject.closest( expr [, context ] )closest: function( selectors, context ) {var cur,i = 0,//选择器选择对象的个数l = this.length,//保存结果集合matched = [],//var rneed
2015-10-07 19:42:11 1355
原创 jQuery源码分析之parents,parentsUntil,next,prev,nextAll,prevAll,nextUntil,prevUntil,siblings,children
jQuery源码分析之arents,parentsUntil,next,prev,nextAll,prevAll,nextUntil,prevUntil,siblings,children,conte
2015-10-07 15:18:52 2649 1
原创 jQuery源码分析之实例find和filter方法的区别七问
首先我们要介绍一个winnow函数,它用于filter函数 function winnow( elements, qualifier, not ) {//如果qualifier是函数,那么给每一个对象调用if ( jQuery.isFunction( qualifier ) ) {return jQuery.grep( elements, functi
2015-10-07 09:52:11 1763
原创 jQuery源码分析之contains函数
//contains函数//调用方式:jQuery.contains( container, contained )//jQuery,.contains底层调用的方法来自于JS的contains方法和compareDocumentPosition方法Sizzle.contains = function( context, elem ) {// Set document vars i
2015-10-07 07:52:43 2031
原创 jQuery源码分析之实例调用方法map,slice,first,last,end,sort,splice,push方法详解
我们调试jQuery源码中的pushStack函数和map函数$.fn.extend({/*该函数做两件事情,第一:通过this的构造函数得到一个新的jQuery对象同时将参数对象的属性合并 第二:把上一次选择的结果用prevObject保存*/pushStack1: function( elems ) {//打印"n1" alert(this.a
2015-10-06 19:41:09 1285
原创 jQuery源码分析之$.grep()函数四问
/*grep函数,第三个参数表示是否根据fn的结果取反!*/grep: function( elems, callback, invert ) {var callbackInverse,matches = [],i = 0,//保存数组个数length = elems.length,//对传入的第二个参数取反,true变成false,false变成true//如果i
2015-10-06 17:20:33 1126
原创 jQuery源码分析之$.map函数
/*// 传入一个空函数作为参数,返回一个空数组// 空函数的返回值为undefined,而null或undefined值会被$.map()忽略掉。看最后的判断if(value!=null)var result = $.map( [1, 2, 3], $.noop );document.writeln( result.length ); // 0*/// arg is fo
2015-10-06 16:28:30 780
原创 jQuery源码分析之$.index函数
index: function( elem ) {// No argument, return index in parent//调用方式: $("li").index( )//如果没有传入参数,那么if ( !elem ) {//首先,获取满足选择器的第一个元素,然后获取第一个元素前面的所有的同级元素的个数/*HTML部分:item1item2
2015-10-06 15:23:51 1627
原创 jQuery源码分析之$.inArray()函数
//var deletedIds = [];//保存indexOf函数句柄//var indexOf = deletedIds.indexOf;//inArray函数inArray: function( elem, arr, i ) {var len;//表示有数组对象if ( arr ) {//如果有indexOf原生方法就用原生方法if ( indexOf
2015-10-06 14:41:31 2175 1
原创 jQuery源码分析之jQuery.eq()和jQuery.get()方法比较
jQuery源码分析之jQuery.eq()和jQuery.get()方法比较
2015-10-06 11:20:41 1427
原创 jQuery源码分析之addClass,removeClass,toggleClass,hasClass详解四问
//addClass函数//调用方式$(selector).addClass(class)或者$(selector).addClass(function(index,oldclass))addClass: function( value ) {var classes, elem, cur, clazz, j, finalValue,i = 0,//选择器选择的元素的个数le
2015-09-28 19:23:42 1938
原创 jQuery源码分析之jQuery.cleanData和jQuery.removeData以及jQuery._removeData十五问
internalRemoveData函数详解function internalRemoveData( elem, name, pvt ) {if ( !jQuery.acceptData( elem ) ) {return;}var thisCache, i,isNode = elem.nodeType,// See jQuery.data for more
2015-09-28 19:12:37 3164
原创 jQuery源码分析之深入理解jQuery.data,jQuery._data以及data实例函数十八问
jQuery源码分析之内置函数internalData
2015-09-28 10:38:02 2927
原创 jQuery源码分析之proxy函数
proxy函数详解//proxy函数用法$(document).ready(function(){ var objMyInfo={name:"xx",sex:"male",showEvent:function(){ alert(this); alert("this->"+this.value)
2015-09-28 09:31:03 1093
原创 jQuery源码分析之jQuery.makeArray函数
makeArray函数/*首先弄清楚什么是类数组!http://www.365mini.com/page/jquery_makearray.htmfunction w( html ){ document.body.innerHTML += "" + html;}var obj = { 0:"CodePlayer", 1: "Hello", 2: 18, 3: tr
2015-09-28 09:23:05 863 1
原创 源码分析之jQuery.merge函数
merge函数merge: function( first, second ) {//如果second.length是一个字符串,那么+second.length就是数字了,通过typeof +"123"将返回number//如果是+ "xx"那么就会返回0,typeof还是会返回numbervar len = +second.length,j = 0,i = first.
2015-09-28 09:06:10 2075
原创 jQuery.extend函数源码详解
extend函数/*if ( pvt ) {cache[ id ] = jQuery.extend( cache[ id ], name );} else {cache[ id ].data = jQuery.extend( cache[ id ].data, name );}调用方式1:jQuery.extend( target [, object1 ] [, obj
2015-09-28 08:20:09 1872 1
原创 jQuery源码分析之on方法
on函数源码详解on: function( types, selector, data, fn, /*INTERNAL*/ one ) {var type, origFn;// Types can be a map of types/handlers//如果第一个types的对象是object类型/*给出一个案例:var data = { id: 5, name: "张三"
2015-09-27 10:26:33 2745
原创 jQuery源码分析之jQuery.Event,$.stopImmediatePropagation,$.preventDefault,$.stopPropagation
//jQuery.event函数几种调用方式!//new jQuery.Event( type, typeof event === "object" && event );//其中type有可能是click字符串,在trigger函数里面调用了该方法,调用代码是://type = hasOwn.call( event, "type" ) ? event.type : event也就是t
2015-09-27 09:54:13 1269 1
原创 $.each工具函数
$.each工具函数/*each函数的几种用法提前回顾$.each([1,2,3], function(key, value){ alert("[" + key + "]=" + value); return false;});}); 如果传入第三个参数,那么this指向前面那个object第n个属性,n表示迭代次
2015-09-22 19:46:28 640
原创 $.type源码分析
$.type工具函数var class2type = {};var toString = class2type.toString;//保存tostring,调用{}.tostring.call(obj);或者Object.prototype.tostring.call(obj);获取内置类型var hasOwn = class2type.hasOwnProperty;//所以c
2015-09-22 19:20:20 778
在线评论数据集 论文全文 字段解释
2017-04-12
CMD规范之seajs
2015-12-06
HTML5离线存储
2015-11-17
javascript编程宝典第二版源码
2015-07-06
网络爬虫代码
2015-07-05
SSH整合开发
2015-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人