javascript - HTML onclick 功能不适用于按钮
问题描述
所以我正在制作一个网站,我有一些按钮可以滚动到页面的某些部分。我有 5 个按钮,除了名称之外,它们都有完全相同的代码。其中一个按钮坏了,没有做任何事情,即使它的代码与工作按钮相同。
这是我的 HTML:
关于我们 <div class = "OurMethodsBar">
<button class = "OurMethodsButton" onclick = "ScrollTo(OurMethodsAnchor)">
Our Methods
</button>
</div>
<div class = "InvestBar">
<button class = "InvestButton" onclick = "ScrollTo(InvestAnchor)">
Invest
</button>
</div>
<div class = "ContactUsBar">
<button class = "ContactUsButton" onlclick = "ScrollTo(ContactUsAnchor)">
Contact Us
</button>
</div>
<div class = "MoreInformationBar">
<button class = "MoreInformationButton" onclick = "ScrollTo(MoreInfoAnchor)">
More Info
</button>
</div>
这是我的 JS:
var AboutUsAnchor = document.getElementById("AboutUsAnchor");
var OurMethodsAnchor = document.getElementById("OurMethodsAnchor");
var InvestAnchor = document.getElementById("InvestAnchor");
var ContactUsAnchor = document.getElementById("ContactUsAnchor");
var MoreInfoAnchor = document.getElementById("MoreInfoAnchor");
function ScrollTo(Element) {
Element.scrollIntoView(true);
}
ScrollTo(AboutUsAnchor);
损坏的按钮是 ContactUsButton,它应该滚动到 ContactUsAnchor。如果我手动使用 ScrollTo 函数并输入 ContactUsAnchor,它仍然可以工作,但是当我尝试按下按钮时,它就不起作用了。
解决方案
我宁愿改变方法并重写您的函数以获取字符串并稍后通过 ID 获取元素。
function ScrollTo(element) {
document.getElementById(element).scrollIntoView(true);
}
然后在您的按钮中,只需传递包含单引号 ID 的字符串'
<button class = "ContactUsButton" onclick = "ScrollTo('ContactUsAnchor')">
Contact Us
</button>
正如其他人指出的那样,解决这个问题onlclick
:P
推荐阅读
- navbar - 导航栏移动视图链接到页面不起作用
- mule - Mule 4 - 如何在缓存范围内进行错误处理?
- asp.net-core - 为什么asp.net核心控制器中的版本不起作用
- docker - 从内部向 docker 容器发送 SIGINT
- python - 如何使用 django 过滤属于其组的 obj
- java - 是否在通过引用添加的列表列表中添加列表?
- recursion - BEAM 字节码指令 call_last 的尾调用递归行为
- c# - 如何从我的 datagridview c# 创建图表?
- postgresql - 使用 ansible-playbook 编写安装 nginx 和 postgresql 的任务
- sapui5 - 如何配置多个不同的目的地?