初学者:如何修复JavaScript中的“ReferenceError myFunc未定义”

问题描述 投票:0回答:2

我是JavaScript的新手,尝试创建一个非常简单的图像滑块。我也试图了解错误返回的onclick=""事件。

我已经学会了如何编写一个函数并将其分配给<button>的事件。

HTML设置:

<div id="custom-slider">
  <button onclick="sliderPrev()">Prev</button>
  <img id="slider" src="https://picsum.photos/400/200" />
  <button onclick="sliderNext()">Next</button>
</div>

外部文件中的JavaScript :(在关闭qazxsw poi之前)

</body>

myJavaScript设置:

<script src="src/index.js"></script>

我在外部文件中创建了我的JS,为var images = [ "https://picsum.photos/400/200", "https://picsum.photos/400/200", "https://picsum.photos/400/200" ]; var num = 0; function sliderPrev() { var slider = document.getElementById("slider"); num--; if (num < 0) { num = images.length - 1; } slider.src = images.length; } function sliderNext() {...} 按钮创建了sliderPrev()。但是,每次我尝试单击按钮,它会保持返回Prev

我不知道我的代码出了什么问题。我也尝试过简单的测试,但最后仍然没有工作。

简单测试:

ReferenceError: sliderPrev is not defined

在我的研究中,我发现有人说使用function sliderPrev() { alert("Testing"); } 事件被认为是一个非常糟糕的练习我们应该使用onclick="" :(是真的吗?)

addEventListener

看我的代码var button = document.getElementById("slider").addEventListener("click", sliderPrev);

javascript html5 ecmascript-6
2个回答
2
投票

您无法访问其他文件中at here中定义的局部变量和函数。

要将index.js暴露给浏览器,您应该将sliderPrev添加到window.sliderPrev = sliderPrev模块,这样您就可以在html文件中使用它。


1
投票

看看你在问题中给出的链接中的代码,我看到以下行

index.js

这是问题所在。这必须删除。这导致错误,因此不会运行更多的JS代码。所以函数import "./styles.css";根本没有得到定义。

要导入CSS样式,您需要在sliderPrev中的HTML中使用以下内容:

<head>

© www.soinside.com 2019 - 2024. All rights reserved.