在链接悬停上添加/删除css类到图像

时间:2013-08-20 11:35:30

标签: jquery

我正在尝试添加和删除类,将链接悬停在其上方的图像(在同一容器内),但我遗漏了一些东西,因为它不起作用:

这是jQuery中的代码片段:

jQuery('.category-view a').hover(
  function () {
    jQuery(this).parent('img').removeClass('nzi');
  },
  function () {

    jQuery(this).parent('img').addClass('nzi');
  }

这是HTML:

<div class="category-view">
    <div class="row">
        <div class="category floatleft width33 vertical-separator " style="margin:50px;">
            <div class="spacer">
                <img src="/harbini/images/stories/virtuemart/category/resized/lips_202x296.png" alt="lips">                     
                <h2 class="catSub"> <a href="/harbini/index.php/al/produktet/grim/buzet" title="Buzët"> Buzët </a> </h2>

                <a href="/harbini/index.php/al/produktet/grim/buzet" class="category-overlay"><span></span></a>
            </div>
        </div>

        <div class="category floatleft width33 " style="margin:50px;">
            <div class="spacer">
                <img src="/harbini/images/stories/virtuemart/category/resized/face_202x296.png" alt="face.png">                     
                <h2 class="catSub"> <a href="/harbini/index.php/al/produktet/grim/fytyra" title="Fytyra"> Fytyra </a> </h2>

                <a href="/harbini/index.php/al/produktet/grim/fytyra" class="category-overlay"><span></span></a>
            </div>
        </div>
        <div class="clear"></div>
    </div>

    <div class="horizontal-separator"></div>

    <div class="row">
        <div class="category floatleft width33 vertical-separator " style="margin:50px;">
            <div class="spacer">
                <img src="/harbini/images/stories/virtuemart/category/resized/eyes_202x296.png" alt="eyes">                     
                <h2 class="catSub"> <a href="/harbini/index.php/al/produktet/grim/syte" title="Sytë"> Sytë </a> </h2>

                <a href="/harbini/index.php/al/produktet/grim/syte" class="category-overlay"><span></span></a>
            </div>
        </div>

        <div class="category floatleft width33  " style="margin:50px;">
            <div class="spacer">
                <img src="/harbini/images/stories/virtuemart/category/resized/nails_202x296.png" alt="nails.png">                       
                <h2 class="catSub"> <a href="/harbini/index.php/al/produktet/grim/thonjte" title="Thonjtë"> Thonjtë </a> </h2>

                <a href="/harbini/index.php/al/produktet/grim/thonjte" class="category-overlay"><span></span></a>
            </div>
        </div>
        <div class="clear"></div>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

此处img不是a元素的父级,它是兄弟元素,因此请使用.siblings()

jQuery('.category-view a').hover(
  function () {
    jQuery(this).siblings('img').removeClass('nzi');
  },
  function () {
    jQuery(this).siblings('img').addClass('nzi');
  }

但是因为有两个a元素(一个在h2内)

jQuery('.category-view a').hover(
    function () {
        jQuery(this).closest('.category').find('img').removeClass('nzi');
    },
    function () {
        jQuery(this).closest('.category').find('img').addClass('nzi');
    }
);
相关问题