我想通过addEventListener点击它时动态地更改图片。我在documents.images数组中有图片。我已经写了一个函数来切换图像。我遇到的问题是在点击图像时绑定这个问题。document.images上的JavaScript addEventListener
这是我试过
document.images[i]src.addEventListener("click", MakeMove, false);
我想通过addEventListener点击它时动态地更改图片。我在documents.images数组中有图片。我已经写了一个函数来切换图像。我遇到的问题是在点击图像时绑定这个问题。document.images上的JavaScript addEventListener
这是我试过
document.images[i]src.addEventListener("click", MakeMove, false);
你想将事件添加到实际的图像:
document.images[i].addEventListener("click", MakeMove, false);
但旧的浏览器不支持这些DOM 2级事件处理程序,因此,假设这些图像不必具有多个点击处理程序,请考虑做
document.images[i].onclick = MakeMove;
编辑
将参数传递给MakeMove
,你会设置onclick
到与任何值你调用MakeMove
一个匿名函数需要:
document.images[i].onclick = function() {
MakeMove(12);
}
从原始代码:
document.images[i]src
无效,并且
document.images[i].src
将是一个字符串,你显然不能添加事件处理程序。
+1包含DOM 0方法。值得一提的是,如果只需要一个监听器,DOM 0可能是最好的,因为它无处不在的支持。 – RobG 2012-01-18 04:57:30
@RobG - 是的 - 语法也更简单:) – 2012-01-18 05:02:15
我遇到了一个问题。 MakeMove函数需要一个整数参数。然后该参数将确定要切换到的图像。我相信这是问题所在,而这正是我点击图片时没有任何事情发生的原因。 – 2012-01-18 06:18:49
它看起来像你有一个语法错误。
尝试:
document.images[i].addEventListener("click", MakeMove, false);
需要直接添加事件侦听器的图像对象。使用JSLint(www.jslint.com)以确保将来避免这种错误!
注意:这只会在浏览器支持(主要是除IE之外的所有东西).addEventListner。使用库可能更好,所以你不必担心这一点,但如果你需要,.attachEvent('onclick',MakeMove)将处理IE和其他情况。
你错过了一个“。”在[i]之后,这可能是问题所在。 – CBusBus 2012-01-18 04:33:20