
jQuery
我就是陈星烨
前端开发
展开
-
JQuery绑定事件的方法
比如ul里面有6个libind: this.on( types, null, data, fn );$('li').bind('click',fn),直接绑定到li元素上,效率较低,因为要循环6次进行绑定,通过在fn中查看this得知,不会动态绑定到新加的元素上,如若元素较多则效率不高。live:live(type, [data], fn)$('li').live('click',fn),原创 2017-06-19 10:33:10 · 469 阅读 · 0 评论 -
Jquery事件绑定方法
比如ul里面有6个libind: this.on( types, null, data, fn ); $('li').bind('click',fn) 直接绑定到li元素上,效率较低,因为要循环6次进行绑定 通过在fn中查看this得知,不会动态绑定到新加的元素上,如若元素较多则效率不高。 live:live(type, [data], fn) $('li').li原创 2017-07-07 15:33:51 · 314 阅读 · 0 评论 -
jQuery源码分析----数据缓存系统
为DOM节点添加太多的自定义属性的危害: 循环引用时的内存泄漏 直接暴露数据不安全 多自定义属性对浏览器来说无意义 取数据的时候要对HTML节点进行操作 jQuery缓存系统解决了这个问题。(从事件系统分化出来的)静态方法: $.data(ele) 实例方法:$(ele).data()$(ele).data()是对$.data(ele)的扩展, $.data(el原创 2017-07-07 14:53:47 · 235 阅读 · 0 评论 -
jQuery源码分析-----CallBacks--memory
memory的精华是用本次add的方法call上次add的cb参数function CallBacks(options) { var list = []; var self; var memory; var firingStart; var firingIndex;function _fire(data) { memory = options ===原创 2017-07-07 11:33:23 · 253 阅读 · 0 评论 -
jQuery源码分析-----迭代器each
迭代器each是否有参数args是 数组处理对象处理否 数组处理对象处理function each(obj, callback, args) { var value, i = 0, length = obj.length, isArray = obj instanceof Array; if (args) { if (isArray) {原创 2017-07-07 11:10:53 · 341 阅读 · 0 评论 -
jQuery源码分析-----pushStack
pushStack是jQuery底层方法pushStack方法虽然在高层不会用到,但很多方法都会调用它举例: html结构为ul下5个livar li = $('li');var s = li.slice(2);var end = s.end();pushStack:// Take an array of elements and push it onto the stack// (ret原创 2017-07-07 11:05:37 · 376 阅读 · 0 评论 -
jQuery源码分析-----仿栈与队列操作之get | eq
get与eq都是获取指定索引的元素get返回的是DOM对象,直接将querySelectorAll返回的第i个元素赋值给this[i],get[i]取this[i]即可eq返回的是jQuery对象,即在用pushStack将this[i]处理。var $$ = ajQuery = function (selector) { return new ajQuery.fn.init(selec原创 2017-07-07 10:57:38 · 307 阅读 · 0 评论 -
Query源码分析-----$.extend
jQuery的插件接口目的是为jQuery扩展方法,将扩展的功能从jQuery的主题框架中剥离开来。jQuery的插件开发包括两类:1. 挂在jQuery下的静态方法 2. 挂在jQuery原型上的实例方法用extend实现,具体如下:$.extend=$.fn.extend=function(){ var options, src, copy, target = argumen原创 2017-07-07 10:49:50 · 355 阅读 · 0 评论 -
jQuery源码分析-----jQuery.fn.init.prototype=jQuery.fn=jQuery.prototype
jQuery是面向对象的设计思想。 new方法的核心是返回一个新对象,将原型链和实例的this关联起来,而jQuery选择器在使用的时候不必使用this,原因是在构造函数内部调用了new。例如:var $$ = ajQuery = function(selector) { if(!(this instanceof ajQuery)){ return new ajQuer原创 2017-07-07 10:43:26 · 861 阅读 · 0 评论 -
jquery异步机制源码分析
统揽Deferred全局,如下:1. Deferred: function( func ) { var tuples = [], state = "pending", promise = { state: function() {}, always: function()原创 2017-06-18 12:09:54 · 273 阅读 · 0 评论