【问题标题】:Uncaught ReferenceError: <function> is not defined at HTMLButtonElement.onclick [duplicate]未捕获的 ReferenceError:<function> 未在 HTMLButtonElement.onclick 中定义 [重复]
【发布时间】:2017-05-10 15:25:00
【问题描述】:

我在 https://jsfiddle.net/kgw0x2ng/5/ 的 JSFiddle 上创建了我的问题。代码如下

HTML 代码

<div class="loading">Loading&#8230;</div> 
<button type="submit" onClick="hideButton()">Hide</button>
<button type="submit" onClick="showButton()">Show</button>

JS 代码

function hideButton(){
   $(".loading").hide();
}
function showButton(){
   $(".loading").show();
}

我正在显示一个微调器,我希望在单击“隐藏”按钮时隐藏该微调器。我收到以下错误:

Uncaught ReferenceError: showButton is not defined
    at HTMLButtonElement.onclick (VM282:180)
onclick @ VM282:180
VM282:179  

Uncaught ReferenceError: hideButton is not defined
    at HTMLButtonElement.onclick (VM282:179)
onclick @ VM282:179.

有人可以提出解决方案吗?

谢谢

萨钦

【问题讨论】:

  • 你的函数应该在document.ready函数之外。
  • 您的问题与 javascript 无关。它是 Jsfiddle 的。当您使用 $(...) 时,您正在使用 JQuery,但您从未在代码中引用过 Jquery。在您的 javascript 代码编辑器的左上角有一个下拉列表,选择 JQUERY 的 FRAMEWORKS & EXTENSIONS,例如 JQuery 3.4.1。然后您的代码按预期工作。

标签: javascript html


【解决方案1】:

script 放在正文标签内

<body>
  // Rest of html
  <script>
  function hideButton() {
    $(".loading").hide();
  }
function showButton() {
  $(".loading").show();
}
</script> 
< /body>

如果您检查此JSFIDDLE 并单击javascript,您将看到load Type body 被选中

【讨论】:

  • 这不是确切的解决方案,但它点击了我的解决方案......所以赞成。
【解决方案2】:

我遇到了同样的问题...我正在将所有脚本编写在一个单独的文件中,并通过标记将其添加到 HTML 文件的末尾 body 标记之后。 将标签移动到正文标签内后,它可以正常工作。 之前:

</body>
<script>require('../script/viewLog.js')</script>

之后:

<script>require('../script/viewLog.js')</script>
</body>

【讨论】:

    猜你喜欢
    • 2022-10-30
    • 2021-07-17
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多