Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不是';单击后img src/图片是否发生变化?_Javascript_Html_Image - Fatal编程技术网

Javascript 为什么不是';单击后img src/图片是否发生变化?

Javascript 为什么不是';单击后img src/图片是否发生变化?,javascript,html,image,Javascript,Html,Image,我正在尝试执行从到的转换状态 我之所以使用这种技术来实现这个JavaScript,是因为JavaScript可以动态地“更改HTML元素的内容”—— 这是 我看到要在html中更改图像标记的src,必须执行这行代码(从) 下面是我的整个JavaScript代码,用于更改图像部分(来自我的JFIDLE) 我确保我遵守了约定,检查了我的ID,并编写了一条警报语句以确保JavaScript正在执行 在所有这些之后,当我点击choice2时,图像仍然没有改变。。。有人知道问题是什么吗 您需要将oncli

我正在尝试执行从到的转换状态

我之所以使用这种技术来实现这个JavaScript,是因为JavaScript可以动态地“更改HTML元素的内容”——

这是

我看到要在html中更改图像标记的src,必须执行这行代码(从)

下面是我的整个JavaScript代码,用于更改图像部分(来自我的JFIDLE)

我确保我遵守了约定,检查了我的ID,并编写了一条警报语句以确保JavaScript正在执行


在所有这些之后,当我点击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"); 
    };
}