【发布时间】:2015-12-30 13:01:11
【问题描述】:
这是我在 jQuery 中的代码:
$('.paragraph, .section, .heading').on('input', function (e) {
localStorage.setItem($(this).attr('id'), $(this).text());
});
是否有任何等效的 JavaScript 可以一次附加所有事件?
【问题讨论】:
-
(元素).addEventListener('click',function(){});在一次迭代中
-
答案是否定的,在纯 javascript 中没有等价物,您必须遍历元素并将事件处理程序分别附加到每个元素
-
我会在父元素上使用一个侦听器(如果需要,为主体),然后像
document.body.addEventListener('click', function(e) { var target = e.target, class = target.className; if (class === 'paragraph' || class === 'section' || class === 'heading') { localStorage.setItem(target.id, target.innerText); } e.stopPropagation() });那样检查被点击的元素,减少事件会更高效.. 这假设元素只有每个班级..也许有更有效的方法检查正确的班级,例如使用数组.. -
here 更具可读性
标签: javascript jquery