【问题标题】:Function doesn't execute from an onclick inside the html [duplicate]函数不会从 html 内的 onclick 执行 [重复]
【发布时间】:2013-11-16 17:43:13
【问题描述】:

这可能很简单,但我对 JavaScript 很陌生,这让我发疯了。

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

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

如果我将 onclick 直接添加到 JavaScript 中,效果很好:

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

提前致谢。

【问题讨论】:

标签: javascript html dom onclick


【解决方案1】:

您的getThoughts 函数未定义,因为您的JavaScript 设置为执行onLoad。查看 jsFiddle 左上角的下拉菜单。选择“No wrap - in &lt;head&gt;”解决问题:http://jsfiddle.net/Ye9tG/1/

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

【讨论】:

  • 谢谢,我认为这很愚蠢。甚至没有想过如果它是 jsFiddle 而不是代码本身的可能性。
  • @user2999861:没问题 - 很乐意提供帮助。祝你的项目好运。
【解决方案2】:

在 jsfiddle 的左上角,您会看到您的 fiddle 已设置为运行您的 js 代码“onLoad”。真正的意思是 jsfiddle 为你创建了这个:

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

// YOUR CODE HERE

}//]]>  

</script>

因此,您的函数只能在 onload 函数中访问。将值更改为“no wrap head”,您会看到它有效。

您的另一个选择是使您的函数显式全局化:

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

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

【讨论】:

    猜你喜欢
    • 2020-04-23
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多