<li class="active"><a href="#"><img src="images/static/personal_information.png" class="img-responsive center-block"><span>Personal<br> Information</span> </a></li>
这就是我的尝试
$(".navbar-nav li a").hover(function(){
$(this).children("img").attr('src').replace('hover','static');
});
答案 0 :(得分:0)
您正在替换src
代码,但不会将其分配回来。
$(".navbar-nav li a").hover(function(){
var newSrc = $(this).children("img").attr('src').replace('hover','static');
$(this).children('img').attr('src', newSrc)
});
答案 1 :(得分:0)
首先,你对replace()
的论证是错误的。其次,您需要在进行替换后实际设置值。最后,您还需要为hover()
提供另一个函数参数,以便在mouseout上重新设置原始图像。试试这个:
$(".navbar-nav li a").hover(function() {
$(this).children("img").prop('src', function(i, src) {
return src.replace('static', 'hover');
})
}, function() {
$(this).children("img").prop('src', function(i, src) {
return src.replace('hover', 'static');
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="navbar-nav">
<li class="active">
<a href="#">
<img src="images/static/personal_information.png" class="img-responsive center-block">
<span>Personal<br> Information</span>
</a>
</li>
</ul>
答案 2 :(得分:-1)
为什么定位<a>
,然后选择其子<img>
?为什么不直接将其应用于图像?
$(".navbar-nav li a img").hover(function(){
$(this).attr('src') = $(this).attr('src').replace('hover','static');
});