我想将 javascript 中的事件侦听器应用于循环内的元素。事件名称在循环中是可变的。当我尝试使用我的代码时,它不工作只有最后一个 addEventListener 工作?我要添加的事件是:单击和鼠标输入。当我单击该项目时,触发的是 mouseenter 事件!
_apply = function(trackEventData, trackEventItem) {
var tmpData, i, j, eventType, eventAction;
// get stringified json events
tmpData = JSON.parse(trackEventData);
for (i = 0; i < tmpData.length; i++) {
// for each type in events
eventType = Events.getEventTypeByKey(tmpData[i].key);
eventAction = tmpData[i].actions;
console.log('apply ' + eventType.event);
// we add the event listener
trackEventItem.addEventListener(eventType.event, function(e) {
console.log('eventfired ' + eventType.event);
e.preventDefault();
// and for each action we add the function callback
for (j = 0; j < eventAction.length; j++) {
Events.getEventActionByKey(eventAction[j].value).action(eventAction[j].options);
}
});
}
};