我如何实现对事件侦听器的功能

梅尔

CSS:

.motionContainerMenu{
    width: 100%;
    height: 30px;
    position: relative;
    margin: auto;
    margin-bottom: -7px;
    border: 2px solid red
}


.motionTop{
    position:absolute;
    border:2px solid blue;
    background-color: red;
    height:10px;
    width:100%
}

HTML:

<nav>
    <ul>
        <li>
            <a href="transcript.php">Test one</a>
            <div class="motionContainerMenu">
                <div class="motionTop"></div>
            </div>
        </li>
        <li>
            <a href="contact.php">TestTwo</a>
            <div id="motionContainerMenu">
                <div class="motionTop"></div>
            </div>
        </li>
    </ul>
</nav>

Javascript:

function focusMenu(x) {

    x.style.borderColor     = "#fff";
    x.style.height          = "30px";
    x.style.backgroundColor = "#555"
}

var elements = document.querySelectorAll(".motionTop");
for (var i = 0; i < elements.length; i++) {

    elements[i].addEventListener( "mouseover", function() { focusMenu(x) } );
};

在代码的最后一行,我希望每个.motionTop都可以独立运行。我删除了focusMenu(x)并将其替换为Alert。我使用警报来测试代码,它完全按照我想要的方式工作。但是,我无法弄清楚如何使该行代码接受focusMenu函数。我是JavaScript新手(在这里发布之前,我做了很多研究)。感谢您的任何建议。

如果将event参数添加mouseover事件监听器,则可以通过event.currentTarget以下方式获取相关元素

elements[i].addEventListener( "mouseover", function( event ) {
    focusMenu( event.currentTarget )
} );

我还建议使用classList而不是style直接更改属性,例如:

CSS:

.focused {
    border-color: #FFF;
    height: 30px;
    background-color: #555;
}

JavaScript:

elements[i].addEventListener( "mouseover", function( event ) {
    event.currentTarget.classList.add('focused');
} );

请注意,如果要.focused删除该类,mouseout则根本不需要JavaScript,只需使用CSS即可:hover

.motionTop:hover {
    border-color: #FFF;
    height: 30px;
    background-color: #555;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在输入字段上对事件侦听器进行单元测试?

如何实现 dotrine 实体事件侦听器

如何快速实现侦听器模式

如何实现onchildclick侦听器?

如何删除事件侦听器

如何简化 javascript 事件侦听器?

如何为Firebase实现Node.Js服务器端事件侦听器?

未触发我的链接功能中注册的事件侦听器

如何实现SQL Server事件侦听器以触发Nodejs函数?

jQuery-如何为动态添加的可放置表格行实现事件侦听器?

事件侦听器的实现-汇编与高级语言

异步事件侦听器的默认TaskExecutor实现

如何使用 Swift 协议功能作为 Android 接口侦听器实现?

如何从具有匿名功能的div中删除事件侦听器

如何使用react devtools将功能绑定到onClick事件侦听器

如何在 childporcess.on 退出事件中测试侦听器功能

Vanilla Javascript 如何覆盖事件侦听器上的添加功能?

将超时设置为事件侦听器功能

删除用于带节流功能的Scroll事件侦听器

移相器文本事件无法识别侦听器功能

如何检查侦听器事件是否是被动事件?

如何在会话和路由器侦听器之间注册事件侦听器?

如何为我在Javascript中的forEach循环中创建的每个链接分配事件侦听器

在Picasso库中,现在如何在我的图像加载时触发哪个事件侦听器?

如何通过ExecuteScript添加我自己的侦听器来捕获“加载”事件?

如何为我们通过 javascript 创建的元素添加事件侦听器?

如何针对要处理的事件侦听器来定位我的班级任务?

Java侦听器实现

useEffect不会删除我的事件侦听器