我试图在单击图像时将一个变量发送到一个函数,但无法使其中任何一个起作用。不确定我哪里出错了。?
jsfiddle http://jsfiddle.net/cibravo/rNGMR/
HTML
<input type="submit" value="send" onclick="alert('works')" />
<br/><br/>
<img onclick="alert('works')" src="http://firmakurser.studieskolen.dk/images/web/Facebook-logo-small.png" />
<br/><br/>
<!-- this doesn't work -->
<input type="button" value="send" onclick="myFunction()" />
<br/><br/>
<!-- this doesn't work -->
<img onclick="showhide('works')" src="http://firmakurser.studieskolen.dk/images/web/Facebook-logo-small.png" />
JS
function myFunction(){
alert("works");
}
function showhide(field){
alert(field);
}
最佳答案
你说的两个例子都行不通,提供它们调用的函数是全局函数,不包含在任何作用域函数中。
它在您的 fiddle 中不起作用的原因是 jsFiddle 的(令人惊讶的)默认设置是将您的 JavaScript 代码包装在 window
load
事件处理程序中,如下所示:
window.onload = function() {
// your code here
};
...因此您的函数不是全局函数。 (我说这很令人惊讶,因为等到 window
load
事件运行时,这在页面加载过程中已经很晚了,不是最佳实践。)
这是一个更新的 fiddle :http://jsfiddle.net/rNGMR/4/正如 Juhana 指出的那样,您将左上角的第二个下拉框更改为“无换行”选项之一(我选择了“无换行 - 正文”)。
为清楚起见,这是一个完整的一体化示例:Live Copy | Live Source
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Global Functions</title>
</head>
<body>
<input type="submit" value="send" onclick="alert('works')" />
<br/><br/>
<img onclick="alert('works')" src="http://firmakurser.studieskolen.dk/images/web/Facebook-logo-small.png" />
<br/><br/>
<!-- this doesn't work -->
<input type="button" value="send" onclick="myFunction()" />
<br/><br/>
<!-- this doesn't work -->
<img onclick="showhide('works')" src="http://firmakurser.studieskolen.dk/images/web/Facebook-logo-small.png" />
<script>
// Note that these are globals
function myFunction(){
alert("works");
}
function showhide(field){
alert(field);
}
</script>
</body>
</html>
关于javascript - 通过javascript将变量发送到函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053122/