事件分流指的是用一个对象将不同元素对应的事件存储起来,再用一个函数运行不同元素对应的事件。如下:
var tapMap = {
'prev': function (e) {
index--;
index = (index + picLength) % picLength;
},
'next': function (e) {
index++;
index = index % picLength;
}
}
· tagName通常用于事件委托。其中,e.target.className用于运行对象中的不同的函数。
abtn.addEventListener('click', function (e) {
if (e.target.tagName.toLowerCase() != 'span') {
return false;
}
move(function () {
var btnClass = e.target.className;
tapMap[btnClass](e);
//不能直接用 tapMap[btnClass](e);作为回调函数
});
});