晖晖晖晖哥
2015-08-20 14:43
//////////
//分解参数 //
//////////
function access(elems, fn, key, value, chainable, emptyGet, raw) {
var i = 0,
len = elems.length;
//如果是一个对象,for in递归调用自己
if (jQuery.type(key) === "object") {
chainable = true;
for (i in key) {
access(elems, fn, i, key[i], true, emptyGet, raw);
}
} else if (value !== undefined) {
if (fn) {
fn(elems, key, value);
}
}
return elems
};
//////////
//设置样式 //
//////////
function style(elem, name, value, extra) {
var origName = jQuery.camelCase(name),
style = elem.style;
style[name] = value;
}
function css(name, value) {
return access(this, function(elem, name, value) {
return value !== undefined ?
style(elem, name, value) :
jQuery.css(elem, name);
}, name, value, arguments.length > 1);
}
access===>递归拆分{margin:40px,padding:40px},将其赋值到style相对应的key值里面
style ===>取到elem的style值,然后赋值
最后调用jQuery.css方法,重绘
我是这样理解的,打断点可以跟踪
jQuery源码解析(DOM与核心模块)
71439 学习 · 82 问题
相似问题