javascript - 如何在 JS/Jquery 中组合几个 hover 元素

标签 javascript jquery html css


我是一名新手网页设计师,我开始为网站目的学习 JavaScript。在我最近的元素中,我遇到了一个问题。创建菜单时,我想在悬停和单击时突出显示特定元素。

function hoverAndActive(firstElement, secondElement){
$(firstElement, secondElement).hover(function(){
        $(firstElement, secondElement).toggleClass("hoverMenu");
    }).mousedown(function(){
        $(firstElement, secondElement).addClass("activeMenu");
    }).mouseup(function(){
        $(firstElement, secondElement).removeClass("activeMenu");
    }).mouseleave(function(){
        $(firstElement, secondElement).removeClass("activeMenu")
    });
}

hoverAndActive("#home","#hometext");
hoverAndActive("#bio","#biotext");
hoverAndActive("#contact","#contacttext");

我想为每个菜单元素创建用于悬停和鼠标单击的结构。虽然我可以通过在函数中重复结构来让它工作,但我不知道如何编写一次功能并且只为每个菜单项输入 id。我想通过 JS 而不是 CSS 来完成此操作,因为每对 ID 位于 html 中非常不同的位置。

谢谢参观 :)
阿斯格谢氏



编辑:在函数中添加#。措辞



编辑:添加 HTML:

<div id="navigation">
    <div id="menu">
        <a href="#BodyHead"><div id="home" class="button"><img src="img/home.png"></div></a>
        <a href="#Test"><div id="bio" class="button"><img src="img/bio.png"></div></a>
        <a href="#"><div id="contact" class="button"><img src="img/contact.png"></div></a>
    </div>
    <div id="menutext">
        <a href="#BodyHead"><div id="hometext" class="button"><p>HJEM</p></div></a>
        <a href="#Test"><div id="biotext" class="button"><p>BIOGRAFI</p></div></a>
        <a href="#"><div id="contacttext" class="button"><p>KONTAKT</p></div></a>
    </div>
</div>

最佳答案

语法 $(firstElement, secondElement) 不会选择两个元素。它选择 firstElement within secondElement,即它等同于 $(secondElement).find(firstElement)

如果要组合多个选择器,它们需要位于单个选择器字符串中,以逗号分隔。

function hoverAndActive(firstElement, secondElement){
    var bothItems = $(firstElement + ',' + secondElement);
    bothItems.hover(function(){
        bothItems.toggleClass("hoverMenu");
    }).mousedown(function(){
        bothItems.addClass("activeMenu");
    }).mouseup(function(){
        bothItems.removeClass("activeMenu");
    }).mouseleave(function(){
        bothItems.removeClass("activeMenu")
    });
}

关于javascript - 如何在 JS/Jquery 中组合几个 hover 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35900445/

相关文章:

javascript - 如何从 Google Apps 脚本中的压缩 blob 恢复 JSON 字符串?

javascript - 删除 contenteditable div 中标签内字符串前后的空格

javascript - Bacon.js 属性新值和旧值

javascript - 如何在此代码中添加 "exception"或 "condition"(javascript,jquery)?

javascript - 使用 JS 淡化多个 div

php - 使表单数据从多选表单保留在 PHP 页面上

php - 我如何允许空白字段被我的数据库接受为空?

javascript - 让 Javascript 只在一些特定的 div 中工作

javascript - 在 Firefox/IE7 中如何处理大于 17 位的数字?

javascript - 按 2 列对多维数组进行排序 - JavaScript