Javascript JS函数始终在我的html开始时执行代码
我是JS新手,我在YouTube上看了一些速成课程,并试图在同一时间完成。我正在使用Visual Studio代码和扩展名Javascript JS函数始终在我的html开始时执行代码,javascript,Javascript,我是JS新手,我在YouTube上看了一些速成课程,并试图在同一时间完成。我正在使用Visual Studio代码和扩展名live server,以便快速查看更改 在我的JS代码中: //SUBSCRIBE var subscribeEmail = document.getElementById('subscribe-email'); var subscribeSubmit = document.getElementById('subsribe-link-btn');
live server
,以便快速查看更改
在我的JS代码中:
//SUBSCRIBE
var subscribeEmail = document.getElementById('subscribe-email');
var subscribeSubmit = document.getElementById('subsribe-link-btn');
//HEADER
var headerRootWrapper = document.getElementById("navbar-wrapper");
console.log(headerRootWrapper);
var show = document.getElementById('sidebar-wrapper');
//LOGO
var webLogo = document.getElementById('logo');
console.log(webLogo);
//MENU BAR
var menuBar = document.getElementById('menu-bar').addEventListener('click', menuSlideLeft());
console.log(menuBar);
var sideMenuId = document.getElementById('sidebar-wrapper');
//SEARCH BAR
var searchBar = document.getElementById('searchBarShow').addEventListener('click',searchStart());
// METHOD
function menuSlideLeft() {
alert("Fire");
}
从我的Html文件中,我在底部添加了js脚本(不在body标记中)。它总是在开始时执行方法menuSlideLeft()
,而不让我单击菜单栏
<script src="js/jscript.js"></script>
您正在此行中调用函数
var menuBar = document.getElementById('menu-bar').addEventListener('click', menuSlideLeft());
检查addEventListener
函数中的部分menuSlideLeft()
你应该做的是
var menuBar = document.getElementById('menu-bar').addEventListener('click', menuSlideLeft);
i-e只是传递函数的引用。别这么说。它将在该事件中被调用从调用该函数的事件侦听器中删除括号。而是使用:
.addEventListener('click', menuSlideLeft);
您正在调用函数,而不是将其作为参数传递。 解决方案:
document.getElementById('menu-bar').addEventListener('click', menuSlideLeft);
addEventListener('click',menuSlideLeft())
从menuSlideLeft()中删除()
。使用类似于addEventListener('click',menuSlideLeft)
,与addEventListener('click',searchStart)
的方法相同,您正在添加一个事件侦听器,其输出为menuSlideLeft
。这很微妙。