简单的jquery图像更改onclick失败

时间:2010-06-16 03:37:41

标签: jquery

我有一个失败的简单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');
        }

    });

警报在未注释时正确触发,图像位于正确的位置,因此我不确定问题是什么。

3 个答案:

答案 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';           
     });
});