源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jquery的总体架构分析及实现示例详解

  • 时间:2022-03-26 00:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jquery的总体架构分析及实现示例详解
jQuery整体框架甚是复杂,也不易读懂,这几日一直在研究这个笨重而强大的框架。jQuery的总体架构可以分为:入口模块、底层模块和功能模块。这里,我们以jquery-1.7.1为例进行分析。 [b]jquery的总体架构[/b]
[url=http://www.1sucai.cn/article/57247.htm]jquery常用方法及使用示例汇总[/url] 方法.each()用于遍历当前jQuery对象,并在每个元素上执行回调函数。方法.each()内部通过简单的调用静态方法jQuery.each()实现:
[u]复制代码[/u] 代码如下:
each: function( callback, args ) {         return jQuery.each( this, callback, args );     },
回调函数是在当前元素为上下文的语境中触发的,即关键字this总是指向当前元素,在回调函数中return false 可以终止遍历。 方法.map()遍历当前jQuery对象,在每个元素上执行回调函数,并将回调函数的返回值放入一个新jQuery对象中。该方法常用于获取或设置DOM元素集合的值。
[u]复制代码[/u] 代码如下:
map: function( callback ) {         return this.pushStack( jQuery.map(this, function( elem, i ) {             return callback.call( elem, i, elem );         }));     },
原型方法.pushStack()创建一个新的空jQuery对象,然后把DOM元素集合放入这个jQuery对象中,并保留对当前jQuery对象的引用。 原型方法.pushStack()是核心方法之一,它为以下方法提供支持: jQuery对象遍历:.eq()、.first()、.last()、.slice()、.map()。 DOM查找、过滤:.find()、.not()、.filter()、.closest()、.add()、.andSelf()。 DOM遍历:.parent()、.parents()、.parentsUntil()、.next()、.prev()、.nextAll()、.prevAll()、.nextUnit()、.prevUnit()、.siblings()、.children()、.contents()。 DOM插入:jQuery.before()、jQuery.after()、jQuery.replaceWith()、.append()、.prepent()、.before()、.after()、.replaceWith()。 定义方法.push( elems, name, selector ),它接受3个参数: 参数elems:将放入新jQuery对象的元素数组(或类数组对象)。 参数name:产生元素数组elems的jQuery方法名。 参数selector:传给jQuery方法的参数,用于修正原型属性.selector。 方法.end()结束当前链条中最近的筛选操作,并将匹配元素还原为之前的状态
[u]复制代码[/u] 代码如下:
end: function() {         return this.prevObject || this.constructor(null);     },
返回前一个jQuery对象,如果属性prevObect不存在,则构建一个空的jQuery对象返回。方法.pushStack()用于入栈,方法.end()用于出栈 [b]静态属性和方法[/b] 相关源码如下:
[u]复制代码[/u] 代码如下:
388 jQuery.extend({  389     noConflict: function( deep ) {},  402     isReady: false,  406     readyWait: 1,  409     holdReady: function( hold ) {},  418     ready: function( wait ) {},  444     bindReady: function() {},  492     isFunction: function( obj ) {},  496     isArray: Array.isArray || function( obj ) {},  501     isWindow: function( obj ) {},  505     isNumeric: function( obj ) {},  509     type: function( obj ) {},  515     isPlainObject: function( obj ) {},  544     isEmptyObject: function( obj ) {},  551     error: function( msg ) {},  555     parseJSON: function( data ) {},  581     parseXML: function( data ) {},  601     noop: function() {},  606     globalEval: function( data ) {},  619     camelCase: function( string ) {},  623     nodeName: function( elem, name ) {},  628     each: function( object, callback, args ) {},  669     trim: trim ? function( text ) {} : function( text ) {},  684     makeArray: function( array, results ) {},  702     inArray: function( elem, array, i ) {},  724     merge: function( first, second ) {},  744     grep: function( elems, callback, inv ) {},  761     map: function( elems, callback, arg ) {},  794     guid: 1,  798     proxy: function( fn, context ) {},  825     access: function( elems, key, value, exec, fn, pass ) {},  852     now: function() {},  858     uaMatch: function( ua ) {},  870     sub: function() {},  891     browser: {}  892 });  
未完待续、、、今天就先到这里了,下次补齐。别急哈小伙伴们
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部