jquery悬停后恢复原始图像更好的方法?

时间:2015-02-13 09:31:07

标签: javascript jquery html

在悬停时替换图像我使用了jquery:

<script  type='text/javascript'>

            $(document).ready(function(){

                var blog1 = $(".blogimage1").attr('src');


                $(".imghover").hover(function() {
                    $(this).attr("src","images/imghover.png");
                        }, function() {
                    $(this).attr("src",blog1);
                });
            });

        </script>

这是html:

<a href="blog-inner.html" title="read more">
                <img src="images/blogpost4.jpg" alt="blog post title" class="img-responsive imghover blogimage1">   
            </a>

它的工作方式与我想要的完全一样,但是我不知道会有多少博客图片,所以现在我必须在blogimage1,blogImage2等中添加到html中并使用jquery执行相同操作。有没有办法可以做到这一点,而不必存储每个原始的博客图像,并写一百万次相同的功能?

2 个答案:

答案 0 :(得分:3)

试一试:当鼠标悬停时,您可以将先前的图像保存在blog1变量中,并在鼠标离开时将其替换回来。

$(document).ready(function(){
   var blog1 = '';

  $(".imghover").hover(function() {
       //save previous image in variable
       blog1  = $(this).attr('src');
       $(this).attr("src","images/imghover.png");
     }, function() {
          $(this).attr("src",blog1);
  });
});

答案 1 :(得分:1)

使用.data()存储原始图片路径。

  

存储与匹配元素关联的任意数据,或者在指定数据存储中返回匹配元素集中第一个元素的值。

$(".imghover").hover(function() {
    $(this).data('orgimage', this.src); //Store data
    this.src = "images/imghover.png";
}, function() {
    this.src = $(this).data('orgimage'); //Retrieve and set original image path
});