我有一张图片列表 我想在我的页面上的任何“img”上监听点击操作或悬停操作,无论ID如何。我想使用常规的javascript并且对现代浏览器友好。
我做了很多研究和阅读,但我还没有找到解决方案。 我在想我的代码可能看起来像这样,但我不是肯定的:
var allimg = document.getElementsByTagName('img');
for(var i = 0; i < allimg.length; ++i) {
// do something
}
如何添加onlick,我是否需要将其作为pageload上的函数调用?如何点击javascript对所有img标签做出反应?
答案 0 :(得分:4)
使用事件委托:
document.getElementsByTagName('body')[0].onclick = function (event) {
if (event.target.nodeName === "IMG") {
console.log('do something');
}
}
答案 1 :(得分:0)
你有可能拥有jQuery吗?如果是的话......
$(img).on('click',function(e){
console.log('rad')
});
否则..你走在正确的轨道上。未经测试,但这应该让你在那里......
function clickHandler(e){
console.log('I love goats')
}
var allimg = document.getElementsByTagName('img');
for(var i = 0; i < allimg.length; ++i) {
allimg[i].onclick = clickHandler;
}
答案 2 :(得分:0)
无需为每个元素添加侦听器。在循环中尝试这个。 allimg[i].onclick/onmouseover = function(){//your code}