首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鼠标上的jQuery目标与类相同的id

鼠标上的jQuery目标与类相同的id
EN

Stack Overflow用户
提问于 2014-10-20 12:55:12
回答 3查看 729关注 0票数 2

我试图在#照片菜单里的鼠标切换时向#photo li添加活动类。

代码语言:javascript
复制
$('#photo-menu li').on('mouseenter mouseleave', function(){
        var pClass = this.className;
        var pId = ('#photo-desc li').id;
        if (pClass == pId) {$('#photo-desc li').addClass('active');}
   });

<ul id="photo-menu">
    <li class="photo-1"><a href="">Photo 1</a></li>
    <li class="photo-2"><a href="">Photo 2</a></li>
    <li class="photo-3"><a href="">Photo 3</a></li>
    <li class="photo-4"><a href="">Photo 4</a></li>
</ul>

<ul id="photo-desc">
    <li id="photo-1">Photo 1</li>
    <li id="photo-2">Photo 2</li>
    <li id="photo-3">Photo 3</li>
    <li id="photo-4">Photo 4</li>
</ul>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-20 13:00:57

在您的示例中,第二个类具有与id同名的类。所以很简单:

代码语言:javascript
复制
$('#photo-menu li').on('mouseenter mouseleave', function (e) {
    var curClass = $(this).attr("class"); //take class
    if (e.type == "mouseenter") {
        $("#" + curClass).addClass("active"); //use class name to get the id in second list
    } else {
        $("#" + curClass).removeClass("active");
    }
});
代码语言:javascript
复制
.active {
    color: red;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="photo-menu">
    <li class="photo-1"><a href="">Photo 1</a>

    </li>
    <li class="photo-2"><a href="">Photo 2</a>

    </li>
    <li class="photo-3"><a href="">Photo 3</a>

    </li>
    <li class="photo-4"><a href="">Photo 4</a>

    </li>
</ul>
<ul id="photo-desc">
    <li id="photo-1">Photo 1</li>
    <li id="photo-2">Photo 2</li>
    <li id="photo-3">Photo 3</li>
    <li id="photo-4">Photo 4</li>
</ul>

票数 4
EN

Stack Overflow用户

发布于 2014-10-20 13:00:32

只需将类添加到元素(ById)中,就像这样简单:

代码语言:javascript
复制
$('#photo-menu li').on('mouseenter', function(){
        var class = $(this).attr('class');
        var pId = $('#'+class).addClass('active');}
});


$('#photo-menu li').on('mouseleave', function(){
        var class = $(this).attr('class');
        var pId = $('#'+class).removeClass('active');}
});
票数 0
EN

Stack Overflow用户

发布于 2014-10-20 13:45:50

我不明白您想对var pId = ('#photo-desc li').id;做什么,但是我也会重新注释使用jQuery.hover。在这里,您可以使用.addClass("active")在mouseover上设置活动类,使用each(function() {$( this ).removeClass("active");});,您可以在mouseout中从所有div中删除它。

请参阅http://jsfiddle.net/gfobe/owvwrufo/1/作为示例解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26466227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档