UNPKG

attr-chooser

Version:

select among a list of dom elements with the same attribute

27 lines (23 loc) 784 B
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); }); }; };