jQuery仅对当前元素悬停效果

时间:2017-01-16 12:15:19

标签: javascript jquery css hover

我有一个包含图像的Div列表。当我将鼠标悬停在div上时,我希望图像向上移动(我通过在悬停时改变图像css来做到这一点)。我遇到的问题是当我将鼠标悬停在一个div上时,所有div中的所有图像都在变化。相反,我希望悬停效果只发生在我悬停的div上。这是我目前的jQuery:



jQuery(document).ready(function($){
  screenshotHeight = $('.l_admin-product-screenshot img').height(); 

  $('.l_admin-product').hover(function () {
    $('.l_admin-product-screenshot img').css({
      top: -screenshotHeight
    });
  },

                              function () {
    $('.l_admin-product-screenshot img').css({
      top: '0'
    });
  });

});




这是我的html结构:

<div class="l_admin-products">

<div class="l_admin-product" tabindex="0">
            <input name="layes-preset-layout" id="layers-preset-layout-skizzar-homepage-1-radio" class="l_admin-hide" type="radio" value="skizzar-homepage-2">
            <label for="layers-preset-layout-skizzar-homepage-1-radio">
                <input id="layers-preset-layout-skizzar-homepage-1-title" type="hidden" value="Splash Page">
                <input id="layers-preset-layout-skizzar-homepage-1-widget_data" type="hidden" value="">
                <div class="l_admin-product-screenshot">
                    <img src="http://demo.skizzar.com/wp-content/themes/pastorious/assets/preset-images/new_homepage21_w515.png" width="320" style="top: 0px;">                 </div>
                <h3 class="l_admin-product-name" id="skizzar-homepage-2">Splash Page</h3>
                <div class="l_admin-product-actions">
                    <a class="button button-primary customize load-customize" id="layers-generate-preset-layout-skizzar-homepage-1" data-key="layers-preset-layout-skizzar-homepage-1">
                        Select                      </a>
                </div>
            </label>
        </div>

<div class="l_admin-product" tabindex="0">
            <input name="layes-preset-layout" id="layers-preset-layout-skizzar-homepage-2-radio" class="l_admin-hide" type="radio" value="skizzar-homepage-2">
            <label for="layers-preset-layout-skizzar-homepage-2-radio">
                <input id="layers-preset-layout-skizzar-homepage-2-title" type="hidden" value="Splash Page">
                <input id="layers-preset-layout-skizzar-homepage-2-widget_data" type="hidden" value="">
                <div class="l_admin-product-screenshot">
                    <img src="http://demo.skizzar.com/wp-content/themes/pastorious/assets/preset-images/new_homepage2_w515.png" width="320" style="top: 0px;">                  </div>
                <h3 class="l_admin-product-name" id="skizzar-homepage-2">Splash Page</h3>
                <div class="l_admin-product-actions">
                    <a class="button button-primary customize load-customize" id="layers-generate-preset-layout-skizzar-homepage-2" data-key="layers-preset-layout-skizzar-homepage-2">
                        Select                      </a>
                </div>
            </label>
        </div>

<div class="l_admin-product" tabindex="0">
            <input name="layes-preset-layout" id="layers-preset-layout-skizzar-homepage-3-radio" class="l_admin-hide" type="radio" value="skizzar-homepage-3">
            <label for="layers-preset-layout-skizzar-homepage-3-radio">
                <input id="layers-preset-layout-skizzar-homepage-3-title" type="hidden" value="Splash Page">
                <input id="layers-preset-layout-skizzar-homepage-3-widget_data" type="hidden" value="">
                <div class="l_admin-product-screenshot">
                    <img src="http://demo.skizzar.com/wp-content/themes/pastorious/assets/preset-images/new_homepage3_w515.png" width="320" style="top: 0px;">                  </div>
                <h3 class="l_admin-product-name" id="skizzar-homepage-2">Splash Page</h3>
                <div class="l_admin-product-actions">
                    <a class="button button-primary customize load-customize" id="layers-generate-preset-layout-skizzar-homepage-3" data-key="layers-preset-layout-skizzar-homepage-3">
                        Select                      </a>
                </div>
            </label>
        </div>

</div>

1 个答案:

答案 0 :(得分:0)

$('.l_admin-product').hover(function () {
  $this = $(this);

  $this.find('.l_admin-product-screenshot > img').css({
    top: -screenshotHeight
  });
},function () {
  $this.find('.l_admin-product-screenshot img').css({
  top: '0'
  });
});

尝试使用$this指向当前图像。