我有一个失败的简单jQuery图像开关。
$('.heart_img').click(function()
{
var heart_type = $(this).attr('src');
//alert( heart_type );
if ( heart_type == 'images/unheart.png')
{
//alert('uheart');
$(this).attr('src','images/heart.png');
}
else if ( heart_type == 'images/heart.png');
{
$(this).attr('src','images/unheart.png');
}
});
警报在未注释时正确触发,图像位于正确的位置,因此我不确定问题是什么。
答案 0 :(得分:6)
问题:
你的if else中的分号
else if ( heart_type == 'images/heart.png');
应该是
else if ( heart_type == 'images/heart.png')
更好
else
答案 1 :(得分:0)
@ian,图像可能在正确的位置,但src无法看到它。尝试类似"//images/unheart.png"
答案 2 :(得分:0)
这不是答案,而是改进......如果你在jQuery 1.4中,你可以
$('.heart_img').click(function(){
$(this).attr('src', function(index,heart_type){
if ( heart_type.indexOf('unheart.png') != -1 )
{
return 'images/heart.png';
}
else if ( heart_type.indexOf('heart.png') != -1 )
{
return 'images/unheart.png';
}
return heart_type;
});
});
或更好,
$('.heart_img').click(function(){
$(this).attr('src', function(index,heart_type){
return ( heart_type.indexOf('unheart.png') != -1 )? 'images/heart.png':'images/unheart.png';
});
});