Javascript 为什么不是';单击后img src/图片是否发生变化?
我正在尝试执行从到的转换状态 我之所以使用这种技术来实现这个JavaScript,是因为JavaScript可以动态地“更改HTML元素的内容”—— 这是 我看到要在html中更改图像标记的src,必须执行这行代码(从) 下面是我的整个JavaScript代码,用于更改图像部分(来自我的JFIDLE) 我确保我遵守了约定,检查了我的ID,并编写了一条警报语句以确保JavaScript正在执行Javascript 为什么不是';单击后img src/图片是否发生变化?,javascript,html,image,Javascript,Html,Image,我正在尝试执行从到的转换状态 我之所以使用这种技术来实现这个JavaScript,是因为JavaScript可以动态地“更改HTML元素的内容”—— 这是 我看到要在html中更改图像标记的src,必须执行这行代码(从) 下面是我的整个JavaScript代码,用于更改图像部分(来自我的JFIDLE) 我确保我遵守了约定,检查了我的ID,并编写了一条警报语句以确保JavaScript正在执行 在所有这些之后,当我点击choice2时,图像仍然没有改变。。。有人知道问题是什么吗 您需要将oncli
在所有这些之后,当我点击choice2时,图像仍然没有改变。。。有人知道问题是什么吗 您需要将
onclick
设置为函数。您正在立即调用函数,而不是在单击元素时
function pageLoad() {
document.getElementById("choice1").onclick = function() {
getPicture("http://i.imgur.com/e95oMVZ.jpg");
};
document.getElementById("choice2").onclick = function() {
getPicture("http://imgur.com/dOlZ19H");
};
}
您需要将
onclick
设置为函数。您正在立即调用函数,而不是在单击元素时
function pageLoad() {
document.getElementById("choice1").onclick = function() {
getPicture("http://i.imgur.com/e95oMVZ.jpg");
};
document.getElementById("choice2").onclick = function() {
getPicture("http://imgur.com/dOlZ19H");
};
}
你能再解释一下吗?我知道你在那里做的是创建一个匿名函数(一个名字)。为什么不马上打电话?在我将函数附加到.onclick属性之前。这是否告诉.onclick在单击项时需要调用该函数,就像您的匿名函数一样?@committeedandroider,因为没有尾随
()
。您的代码使用参数调用了getPicture
,因此onclick
处理程序是该函数的返回值,即undefined
。要使代码按“原样”工作,您需要返回一个捕获图像URL的函数。注意,#choice2
的URL实际上不是一个图像;这是imgur页面。@DaveNewton啊,我看到getPicture(“)中的(“)将导致该函数立即执行。因此,当你加载页面时,图像不应该是第二个图像,而不是笔记本电脑上的人吗?@CommittedDroider它仍然不是图像。但是它将onclick
处理程序设置为undefined
,因此当您单击它时不会发生任何事情。是的,当您加载页面时,它应该调用getPicture
两次,结果应该是它将其设置为第二个图像。点击图片没有任何作用。你能解释一下吗?我知道你在那里做的是创建一个匿名函数(一个名字)。为什么不马上打电话?在我将函数附加到.onclick属性之前。这是否告诉.onclick在单击项时需要调用该函数,就像您的匿名函数一样?@committeedandroider,因为没有尾随()
。您的代码使用参数调用了getPicture
,因此onclick
处理程序是该函数的返回值,即undefined
。要使代码按“原样”工作,您需要返回一个捕获图像URL的函数。注意,#choice2
的URL实际上不是一个图像;这是imgur页面。@DaveNewton啊,我看到getPicture(“)中的(“)将导致该函数立即执行。因此,当你加载页面时,图像不应该是第二个图像,而不是笔记本电脑上的人吗?@CommittedDroider它仍然不是图像。但是它将onclick
处理程序设置为undefined
,因此当您单击它时不会发生任何事情。是的,当您加载页面时,它应该调用getPicture
两次,结果应该是它将其设置为第二个图像。单击图像不会做任何事情。
function pageLoad() {
document.getElementById("choice1").onclick = function() {
getPicture("http://i.imgur.com/e95oMVZ.jpg");
};
document.getElementById("choice2").onclick = function() {
getPicture("http://imgur.com/dOlZ19H");
};
}