ddd-jquery
Version:
de-bowerified, de-amdified, de-gruntified... jQuery.
33 lines • 1.21 kB
JavaScript
var jQuery = require('../core');
var access = jQuery.access = function (elems, fn, key, value, chainable, emptyGet, raw) {
var i = 0, len = elems.length, bulk = key == null;
if (jQuery.type(key) === 'object') {
chainable = true;
for (i in key) {
jQuery.access(elems, fn, i, key[i], true, emptyGet, raw);
}
} else if (value !== undefined) {
chainable = true;
if (!jQuery.isFunction(value)) {
raw = true;
}
if (bulk) {
if (raw) {
fn.call(elems, value);
fn = null;
} else {
bulk = fn;
fn = function (elem, key, value) {
return bulk.call(jQuery(elem), value);
};
}
}
if (fn) {
for (; i < len; i++) {
fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));
}
}
}
return chainable ? elems : bulk ? fn.call(elems) : len ? fn(elems[0], key) : emptyGet;
};
module.exports = access;