attr-chooser
Version:
select among a list of dom elements with the same attribute
27 lines (23 loc) • 784 B
JavaScript
var classList = require('class-list');
module.exports = function (className, cb) {
if (typeof className === 'string') {
className = (function (str) {
return function () { return str };
})(className);
}
if (typeof className !== 'function') {
throw new Error('className must be a function, string, or object');
}
var prev, elements = [];
return function (elem) {
elements.push(elem);
var cname = className(elem);
elem.addEventListener('click', function (ev) {
ev.preventDefault();
if (cname && prev) classList(prev).remove(cname);
if (cname) classList(elem).add(cname);
prev = elem;
if (cb) cb(elem, ev);
});
};
};