【问题标题】:Jquery 'Highlight' element with the same class具有相同类的 Jquery 'Highlight' 元素
【发布时间】:2011-06-12 17:28:20
【问题描述】:

我正在努力实现这个:

我有类似的东西:

<ul>
<li><a href="#" class="class-1">Link 1</a></li>
<li><a href="#" class="class-2">Link 2</a></li>
<li><a href="#" class="class-3">Link 3</a></li>
</ul>

<img src="img-desc.jpg" class="class-1" />
<img src="img-desc-1.jpg" class="class-2" />
<img src="img-desc-2.jpg" class="class-3" />

我希望每次用户将鼠标移过其中一个 ul>li 时,具有匹配类的图像都会得到一个红色边框。我怎样才能做到这一点??

非常感谢大家,我希望你能帮我解决这个问题。

【问题讨论】:

    标签: jquery image hover


    【解决方案1】:

    你可以这样做:

    示例: http://jsfiddle.net/Q7knH/

    $('ul > li').hover(function() {
        $('img.' + $(this).children('a').attr('class') ).css('border','2px solid red');
    },function() {
        $('img.' + $(this).children('a').attr('class') ).css('border','');
    });
    

    或者,如果您确定 &lt;li&gt; 元素的 &lt;a&gt; 周围没有任何空格,您可以将其缩短一点:

    示例: http://jsfiddle.net/Q7knH/1/

    $('ul > li').hover(function() {
        $('img.' + this.firstChild.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.firstChild.className ).css('border','');
    });
    

    或者,如果您希望悬停在 &lt;a&gt; 上,请执行以下操作:

    示例: http://jsfiddle.net/Q7knH/3/

    $('ul > li > a').hover(function() {
        $('img.' + this.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.className ).css('border','');
    });
    

    【讨论】:

    • Asker 将来可能会通过使用$('img.' + this.className).addClass('some_css_class'); 添加更多功能,Asker 可以在some_css_class 中添加任何他想要的东西,除了红色边框,以便区分功能和样式。
    • @puddingfox:我同意。最好添加一个带有.addClass() 的类,而不是直接设置样式。
    猜你喜欢
    • 1970-01-01
    • 2021-07-18
    • 2012-06-26
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多