javascript - 如何将 HTML 脚本函数传输到外部 JavaScript 文件?

标签 javascript html css

我目前正在构建一个网站,其中应包含一个可选位置列表。在选择时,有一个从左到右的叠加平移。我希望能够将列表中的位置值发送到我的脚本,以便我可以将特定图像加载到叠加层。

每次我将函数从 HTML 文档移动到我的 .js 时,这些函数似乎永远不会被调用。 (这是我的第一个网络开发元素)。

document.getElementById("mkc").onclick = overlayShow();
document.getElementById("hide").onclick = overlayHide();

function overlayShow() {
  document.getElementById("overlay").className += " show";
}

function overlayHide() {
  document.getElementById("overlay").classList.remove("show");
}
<div>
  <div id="list">
    <a onclick=>Birstall</a>
    <a id="mkc" onclick="overlayShow()">Milton Keynes: C wing</a>
    <a id="MKB" onclick="overlayShow()">Milton Keynes: B wing</a>
    <a href="#">Link 3</a>
    <a href="#">Link 4</a>
  </div>
</div>

<div class="main">
  <div id="overlay" class="overlay">
    <div class="content">
      <button id="hide" onclick="overlayHide()">hide</button>
    </div>
  </div>
</div>

该功能适用​​于包含的第二个脚本,但是当我将这些功能移到 index.js 中时,它不起作用。

提前致谢。

最佳答案

document.getElementById("mkc").onclick = overlayShow(); 正在用来自的返回值覆盖现有的 onclick 属性调用 overlayShow()(未定义,因为该函数缺少 return 语句)。

从 HTML 中删除属性并分配函数,而不是从 JS 中调用函数的结果。

document.getElementById("mkc").onclick = overlayShow;

更好的是,切换到现代的 addEventListener:

document.getElementById("mkc").addEventListener("click", overlayShow);

关于javascript - 如何将 HTML 脚本函数传输到外部 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59175844/

相关文章:

html - 开关 css 不适用于输入类型的 radio

html - 使用 :active pseudo class 时点击处理不一致

javascript - 如何确保当内容粘贴到表单中时,表单值立即更新?

javascript - jquery - 速度计箭头模仿,向鼠标旋转箭头

html - Div 与另一个 Div 重叠

javascript - 如何使用 OOJS 创建 Accordion

css - 如何使 Css 顺应图像

javascript - 匹配的路由在路由哈希更改时不会更改

javascript - React 中导入的函数未定义

javascript - jQuery UI 自动完成传递输入数据