Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的悬停函数可以工作,但我的onmouseleave函数不能工作?(在控制台中调用该函数有效)_Javascript_Html_Css_Addeventlistener_Onmouseout - Fatal编程技术网

Javascript 为什么我的悬停函数可以工作,但我的onmouseleave函数不能工作?(在控制台中调用该函数有效)

Javascript 为什么我的悬停函数可以工作,但我的onmouseleave函数不能工作?(在控制台中调用该函数有效),javascript,html,css,addeventlistener,onmouseout,Javascript,Html,Css,Addeventlistener,Onmouseout,这是我的密码笔: 我正在尝试创建一个导航菜单,当您将鼠标悬停在箭头上时,该菜单将滑入,当鼠标离开菜单时,该菜单将滑出 我有UIController.showMenu和UIController.closeMenu 如果我在控制台中调用它们中的任何一个,它们将按预期工作 但是,closeMenu的事件侦听器不工作。它只是没有检测到鼠标离开菜单,也没有关闭 如果我在函数中添加一个console.log(“Hello”),它将在页面首次加载时触发。但在我需要的时候就不行了 app.js: var Co

这是我的密码笔:

我正在尝试创建一个导航菜单,当您将鼠标悬停在箭头上时,该菜单将滑入,当鼠标离开菜单时,该菜单将滑出

我有UIController.showMenu和UIController.closeMenu

如果我在控制台中调用它们中的任何一个,它们将按预期工作

但是,closeMenu的事件侦听器不工作。它只是没有检测到鼠标离开菜单,也没有关闭

如果我在函数中添加一个console.log(“Hello”),它将在页面首次加载时触发。但在我需要的时候就不行了

app.js:

var Controller = (function() {
    UIController.updateNav;
    setInterval(UIController.moveArrowDown, 3000);
    //UIController.addBodyMargin();
 document.querySelector('#menuArrow').addEventListener("mouseover", UIController.openMenu);
      document.querySelector('#sideMenu').addEventListener("onmouseleave", UIController.closeMenu);
});
//-----------------------------------------------------------
var UIController = (function() {

    return {
        openMenu: (function(){
          document.getElementById('sideMenu').style.marginLeft = '0';
          document.getElementById('menuArrow').style.marginLeft = '250px';
          document.body.style.marginLeft = '25px'
        }),
        closeMenu: (function(){
          document.getElementById('sideMenu').style.marginLeft = '-250px';
          document.getElementById('menuArrow').style.marginLeft = '0';
          document.body.style.marginLeft = '0';
        })
        }

})();


document.addEventListener('DOMContentLoaded', (event) => {
  Controller();
})
navbar.css:

.sidemenu {
  height: 100vh;
  width: 250px;
  position: fixed;
  top: 0;
  left: 0;
  background-color: red;
  z-index: 5001;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-left: -250px;
  transition: .5s;
  cursor: pointer;
}

.sidemenu ul {
  list-style: none;
  padding: 0;
}

.sidemenu a {
  text-decoration: none;
  font-size: 2rem;
}

.expand-arrow {
  z-index: 4999;
  position: fixed;
  transition: .5s;
  bottom: 50%;
}
HTML:


  • 关于
  • 问卷调查
显示菜单按钮> 关于我们

Lorem ipsum dolor sit amet,奉献精英。第二,重大实践解决方案是指除责任之外的非义务劳动。伊普萨姆。 这是一种非选择性的、非选择性的、完全可以解释为同一种物质的劳动。你是否有权选择腐败行为? 当然,在维尼亚姆大教堂里,也有一种责任感,它是一种被认为是天然的驱避剂。这是一件值得尊敬的事。


当使用
addEventListener()
方法时,它是
“mouseleave”
而不是
“onmouseleave”
当使用
addEventListener()
方法时,它是
“mouseleave”
而不是
“onmouseleave”

添加事件时不应使用“on”,只需使用 功能

而不是

添加事件时不应使用“on”,只需使用 功能

而不是


打字错误
onmouseleave
应该是
mouseout
?所有在线文档都说它是
onmouseleave
,但是我刚刚把它改成了
mouseleave
,现在它可以工作了(虽然有点不稳定,但这与CSS相关)打字错误
onmouseleave
应该是
mouseout
?所有在线文档都说它是
onmouseleave
,但是我刚刚将它改为
mouseleave
,现在它正在工作(虽然它有点不稳定,但这将与CSS相关),所以它是。非常感谢你!的确如此。非常感谢你!
<body>
        <div class="sidemenu" id="sideMenu">
            <ul>
                <li><a>Home</a></li>
                <li><a>About</a></li>
                <li><a>Questionnaire</a></li>
            </ul>
        </div>
        <i class="expand-arrow" id="menuArrow">SHOW MENU BUTTON ></i>

        <section class="child about-section" id="aboutSection">
            <div class="about-section__content">
                <div class="about-section__content__info-box">
                    <h1 class="about-section__content__info-box__header">About Us</h1>
                    <p class="about-section__content__info-box__text">
                        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nisi, soluta magni exercitationem consectetur natus assumenda dignissimos quasi porro non doloremque labore odit quae accusantium excepturi, dicta recusandae possimus. Necessitatibus, ipsam.
                        Esse dolorem porro quo velit odit quam, rerum, non optio, labore aliquam ducimus totam molestias ipsa quasi explicabo voluptates. Quas eius dolor harum optio corrupti quo impedit dolorem sunt porro?
                        Eaque officia vero, facere possimus exercitationem sint magnam aliquam veniam, ipsam soluta eveniet ex iusto perferendis blanditiis a repellendus assumenda dolores natus dolorum. Cumque vero deserunt fuga autem reprehenderit dignissimos.
                    </p>
                </div>
            </div>
        </section>

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

</body>
document.querySelector('#sideMenu').addEventListener("mouseleave", UIController.closeMenu);
document.querySelector('#sideMenu').addEventListener("onmouseleave", UIController.closeMenu);