在 span/div 悬停时更改 SVG 图标的最简单方法?

the easiest way to change SVG icons in a span/div on hover?

我有一个 Bootstrap 网站,其导航如下:

<a href="">
  <div class="panel panel-default">
    <div class="panel-body">
      <img src="img/messages-grey.svg">
    </div>
    <div class="panel-footer panel-categories-footer-small">
      Messages
    </div>
  </div>
</a>

图标都是这样命名的:

<img src="img/messages-grey.svg">
<img src="img/messages-blue.svg">
<img src="img/settings-grey.svg">
<img src="img/settings-blue.svg">

我已经得到 'Messages' 部分来改变颜色 CSS,但我还需要使 .SVG 图标在有人悬停时从“-grey”变为“-blue”通过链接 DIV。我将如何实现这一目标?可能使用 CSS,如果不是,jQuery?

尝试使用

a:hover{
   background-image:url(img/messages-blue.svg);
}

在 css.

无法使用 CSS 更改 imgsrc 属性。

不过,您可以使用 Javascript。用 jQuery 做这件事非常简单:

$("a").hover(function () {
    $(this).data("originalImage", $(this).attr("src"));
    $(this).find("img:first").attr("src", "path-to-new-img.svg");    
}, function () {
    var original = $(this).data("originalImage");
    $(this).find("img:first").attr("src", original);
});