【发布时间】:2018-11-20 22:21:42
【问题描述】:
我正在尝试创建一个在单击时执行两件事的按钮。首先,在汉堡菜单图标和时间图标 (X) 之间切换。第二个动作是将侧边导航元素的宽度从 0px 更改为 250px,然后如果再次单击则返回 0px(与汉堡菜单从和 X 切换并返回到汉堡包同步)。我已经能够让这些动作的各个部分发挥作用,但无法将它们全部组合在一起。以下是我目前拥有的功能:
<script>
document.getElementById("test").addEventListener("click", myFunctionTwo);
function myFunctionTwo() {
document.getElementById("mySidenav").style.width = "250px";
}
function myFunction(x) {
x.classList.toggle("fa-times");
x.classList.toggle("fa-bars");
}
</script>
HTML:
<button id="test">
<i onclick="myFunction(this)" class="fa fa-bars"></i>
</button>
<div id="mySidenav" class="sidenav">
<a href="#">NFL</a>
<a href="#">NBA</a>
<a href="#">MLB</a>
</div>
有些东西告诉我,我的 i 元素的 onclick 函数应该与我的按钮的事件侦听器结合使用,但我无法让它正常工作。如果再次单击该按钮,我还需要添加一种方法将 sidenav 隐藏回 0px 宽度。
做这样的事情的正确方法是什么?
提前感谢您的帮助!
【问题讨论】:
-
要处理多个函数,请创建一个新函数,按顺序执行这两个函数。并将新函数绑定为处理程序。
-
addEventListener的优点是您可以多次调用它来添加多个事件处理程序。
标签: javascript onclick addeventlistener htmlbutton