次のコードがあります。
$('.active-bean-bag ul li').hover(function() {
var activeBeanBag = 'menu-' + $(this).attr("class");
$('.active-bean-bag img.menu-image').fadeOut();
$('.active-bean-bag img.menu-image').fadeIn(function(){
$('.active-bean-bag img.menu-image').attr("src", '/images/'+activeBeanBag+'.png');
});
});
ただし、別LI
の画像にカーソルを合わせると、古い画像で 2 回フェードアウトするように見えます。理由はありますか?
更新しました:
$('.active-bean-bag ul li').mouseover(function() {
var activeBeanBag = 'menu-' + $(this).attr("class");
var newImage = '/skins/temaplate/customer/images/'+activeBeanBag+'.png';
var $img = $('.active-bean-bag img.menu-image');
if ($img.attr('src') != newImage) {
$img.fadeOut(function() {
$(this).attr("src", newImage).fadeIn();
});
}
});
同じ結果で試してみました:
$(".active-bean-bag ul li").hover(function(e) {
e.preventDefault();
var activeBeanBag = 'menu-' + $(this).attr("class");
$('.active-bean-bag img.menu-image').fadeOut(400, function() {
$('.active-bean-bag img.menu-image').attr('src','/skins/template/customer/images/'+activeBeanBag+'.png');
}).fadeIn(400);
});