ループ内の要素にJavaScriptのイベントリスナーを適用したい。イベント名はループ内で可変です。コードを試してみると、最後の addEventListener だけが機能していませんか? 追加したいイベントは、click と mouseenter です。アイテムをクリックすると、発生するのは 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);
}
});
}
};