这个问题的解决方案可能很简单,但我需要一些帮助。
var x;
for(x in document.getElementsByTagName("img"))
x.addEventListener('click',openPage, false);
function openPage() {
alert("clicked");
}
点击<img src="something" />
标记时,我没有收到提醒。谁知道为什么?还有,我的循环是必要的吗?
答案 0 :(得分:1)
此代码产生错误 - 在for..in语句中,'x'是对象的键(在本例中为document.getElementsByTagName
调用)。你想要的是:
var x,
imgs = document.getElementsByTagName("img");
for(x in imgs) {
if (imgs[x] instanceof Element) {
imgs[x].addEventListener('click',openPage, false);
}
}
function openPage() {
alert("clicked");
}
我建议使用Javascript框架(如jQuery),这有助于简化代码:
$('img').each(function() {
$(this).click(function() {
alert('Clicked!');
// Now that we're in the callback context, $(this) will be the current
// target - the specific image that was clicked.
// i.e. $(this).fadeOut() would slowly fade out the clicked image.
});
});