如何将多个事件侦听器添加到按钮?

时间:2018-11-30 23:01:03

标签: javascript ecmascript-6

我想使用JavaScript ES6向我的按钮添加多个侦听器。 我正在关注this guide

由于某种原因,它对我不起作用。

HTML:

<input type="button" value="Button">

JavaScript:

function multipleEventsListeners(elem, events, func) {
    events.split().forEach(e => elem.addEventListener(e, func, false));
}

const INPUT = document.querySelector('input');
multipleEventsListeners(INPUT, 'onclick ontouchstart', function(e) {
    console.log(this.tagName);
});

2 个答案:

答案 0 :(得分:1)

events作为单个字符串传递-我认为您遇到的问题是由于未正确分割此字符串引起的。使用' '作为拆分分隔符。

function multipleEventsListeners(elem, events, func) {
    events.split(' ').forEach(e => elem.addEventListener(e, func, false));
}

答案 1 :(得分:1)

1)split应该是split(' '),以便在空格处分割

2)您的事件应该是clicktouchstart

function multipleEventsListeners(elem, events, func) {
  events.split(' ').forEach(e => elem.addEventListener(e, func, false));
}

const INPUT = document.querySelector('input');
multipleEventsListeners(INPUT, 'click touchstart', function(e) {
  console.log(this.value);
});
<input type="button" value="Button">