【问题标题】:Highlight links an corresponding images on hover突出显示悬停时链接相应的图像
【发布时间】:2011-05-31 15:32:52
【问题描述】:

在一个项目上工作需要在主页上具有特定的效果。当用户将鼠标悬停在导航中的链接上时,链接以及页面上的相应缩略图都会突出显示。每个链接/缩略图都有类,我们现在如何设置它是在悬停时我们搜索具有相同类的元素。只是想知道是否有更好的方法来做到这一点。谢谢。

(页面布局的左侧有链接,“主”容器中的拇指填充了页面的其余部分)

$('#homeCatNav li a, #homeThumbsUlHolder li img').hover(function(e){
    var $thisA = $(this),
        $thisClass = $(this).attr("class");

    if (e.type.toLowerCase() === 'mouseenter') {
        $('li.imgToHighlight').find('img'+'.'+$thisClass).addClass('hoverElem');
        $('li.homeArtNameList').find('a'+'.'+$thisClass).addClass('hoverElem');             
    }
    if (e.type.toLowerCase() === 'mouseleave') {
        $('li.imgToHighlight').find('img').removeClass('hoverElem');
        $('li.homeArtNameList').find('a').removeClass('hoverElem');
    }
});

【问题讨论】:

    标签: jquery hover


    【解决方案1】:

    我认为您使事件处理程序复杂化了,为什么要这样做

    $("'#homeCatNav li a, #homeThumbsUlHolder li img").hover(mouseOver, mouseOut);
    
    function mouseOver() {
         $thisClass = $(this).attr("class");
         $('li.imgToHighlight').find('img'+'.'+$thisClass).addClass('hoverElem');
         $('li.homeArtNameList').find('a'+'.'+$thisClass).addClass('hoverElem'); 
    }
    
    function mouseOut() {
       $thisClass = $(this).attr("class");
       $('li.imgToHighlight').find('img').removeClass('hoverElem');
       $('li.homeArtNameList').find('a').removeClass('hoverElem');
    }
    

    【讨论】:

    • 这样变量就丢失了。
    【解决方案2】:

    我会切换到“rel”,但这并不重要:

    $('#homeCatNav li a, #homeThumbsUlHolder li img').hover(function(){
            var $thisA = $(this),
            $thisRel = $thisA.attr("rel");
            $('li.imgToHighlight').find('img[rel'+$thisRel+']').addClass('hoverElem');
            $('li.homeArtNameList').find('a[rel'+$thisRel+']').addClass('hoverElem');             
        },function(){
            $('li.imgToHighlight').find('img').removeClass('hoverElem');
            $('li.homeArtNameList').find('a').removeClass('hoverElem');
    });
    

    【讨论】:

    • 有什么特别要切换到 Rel 的理由吗?只是为了参考还是为了速度?
    • 如果你想在 css 中使用这个类,并且不影响这两个元素,例如:(homeCatNav 和 homeArtNameList),将具有相同的类名,但这不是什么大问题跨度>
    • 啊,是的,考虑过这一点,但由于我只是使用从数据库中提取的名称作为类,它应该避免任何这些特殊情况。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 2012-04-14
    • 2017-10-31
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2018-07-31
    相关资源
    最近更新 更多