我正在尝试编写一个脚本,以便在播放嵌入式声音对象时,我嵌入的图片也会发生变化。
function changePic() {
document.getElementById("sound").onclick = transform(document.getElementById("pic"));
}
function transform (pic) {
pic.src = "";
alert ("done");
}
问题在于,当我加载页面时,即使我没有在声音对象上单击播放(自动启动设置为false),Javascript代码也会自动运行。有没有人知道造成这种情况的原因是什么?
谢谢!
答案 0 :(得分:3)
当您撰写onclick = transform(...)
时,您致电 transform
并将结果分配给onclick
。
您需要将处理程序设置为调用transform
的匿名函数,如下所示:
document.getElementById("sound").onclick = function() {
transform(document.getElementById("pic"));
};
但是,这是添加事件的错误方法
您应该致电element.addEventListener
/ element.attachEvent
。 (或者只使用jQuery)