jQuery closest() 或 prevAll() 不起作用

jQuery closest() or prevAll() not working

本文关键字:不起作用 prevAll jQuery closest      更新时间:2023-09-26

当用户将鼠标悬停在与类"thumb"的链接上时,与类"title"最近的链接应应用类"media-link-hover"。如何做到这一点?

我尝试了closest(),也尝试了这个,但似乎没有任何效果:

$('a.thumb').hover(function() {
    $(this)
        .prevAll('.block')
        .find('a.title')
        .addClass('media-link-hover');
}, function() {
    $(this)
        .prevAll('.block')
        .find('a.title')
        .removeClass('media-link-hover');
});

.HTML:

<article class="block">
    <div class="inner-left">
        <a class="thumb" title="" href="">
            <img width="198" height="111" alt="" src="" />
            <span class="media-overlay">video</span>
        </a>
    </div>
    <div class="inner-right">
        <a class="title" title="" href="">Hello</a>
        <div class="description">
            <p>Hi there</p>
            <a class="teaser" href="">Hola</a>
        </div>
        <div class="media-stats">
            <span class="finder">Found by <strong>Me</strong> 1 month ago</span>
        </div>
    </div>
</article>

适用于closest('.block')

http://jsfiddle.net/yBwSN/

尝试使用parents(),也可以通过使用toggleClass()来减少代码。
演示 http://jsfiddle.net/elclanrs/Ce8fu/

$('a.thumb').hover(function() {
    $(this)
        .parents('.block')
        .find('a.title')
        .toggleClass('media-link-hover');
});