函数不会从html中的onclick执行

时间:2013-11-16 17:43:14

标签: javascript html dom onclick

这可能很容易,但我对JavaScript很新,这让我疯狂。

我的问题,为什么这不起作用: http://jsfiddle.net/Ye9tG/

<input type="button" id="butt" value="Button" onclick="getThought();"/>

如果我将onclick直接添加到JavaScript中,它可以正常工作:

document.getElementById("butt").onclick = getThought;

提前致谢。

2 个答案:

答案 0 :(得分:3)

您的getThoughts函数未定义,因为您的JavaScript设置为执行onLoad。请参阅jsFiddle左上角的下拉菜单。选择“无包装 - <head>”以解决问题:http://jsfiddle.net/Ye9tG/1/

另外,请务必查看浏览器的控制台以检查错误。在这种情况下,单击按钮时会看到Uncaught ReferenceError: getThought is not defined错误。

答案 1 :(得分:2)

在jsfiddle的左上角,你会看到你的小提琴被设置为运行你的js代码“onLoad”。这真正意味着jsfiddle为你创造了这个:

<script type='text/javascript'>//<![CDATA[ 
window.onload=function(){

// YOUR CODE HERE

}//]]>  

</script>

因此,您的功能只能在onload功能中访问。将值更改为“无包头”,您将看到它有效。

您的另一个选择是使您的功能明确全局:

window.getThought = function(){
  // ...

http://jsfiddle.net/Ye9tG/5/