我想使用纯Javascript将一个函数绑定到多个事件上。
在jQuery中,我会使用以下代码:
所以我尝试使用纯JS:
这段话的意思是:
有没有一种纯JavaScript的标准方法来完成这个?
在jQuery中,我会使用以下代码:
$('.className').click(function(e){ //do stuff });
所以我尝试使用纯JS:
document.getElementsByClassName('className').onclick = function(e){ //do stuff };
这段话的意思是:
这个方法行不通,因为getElementsByClassName
返回一个数组,而不是DOM对象。
我可以通过循环遍历数组来解决问题,但这似乎过于冗长,而且应该不必要:
var topBars = document.getElementsByClassName('className');
for(var i = 0; i < topBars.length; i++){
topBars[i].onclick = function(e){ //do stuff };
}
有没有一种纯JavaScript的标准方法来完成这个?
Array.map.call()
。但它并不真的更慢/更快。 - Mouser$(document).on('click', '.className', ...)
,这实际上只会附加一个处理程序。同样的事情也可以在纯JS中完成(使用事件冒泡)。 - zerkmsNodeList
或HTMLCollection
的原型,但仍然会发生循环(如前所述),否则就需要委托。 - David Thomas