2010-06-16 38 views
1

我有一個簡單的jQuery圖像切換失敗。簡單的jQuery圖像更改onclick失敗

$('.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

是在heart_img類或一個ID?如果只有一個,那麼通常最好有一個ID,因爲可以有一個以上的類...... HTML的外觀是什麼樣的? – 2010-06-16 03:40:44

+0

你的代碼應該可以正常工作。 – rahul 2010-06-16 03:44:44

+0

如果只有2個圖像,則可以在else之後刪除(...)。 – 2010-06-16 03:45:32

回答

6

問題:

分號你如果其他

else if (heart_type == 'images/heart.png'); 

應該

else if (heart_type == 'images/heart.png') 

更好

else 
+3

大聲笑!... +1爲你的眼睛男人! – Reigel 2010-06-16 03:56:05

+1

是的!感謝那。 – ian 2010-06-16 03:59:41

0

@ian,圖像可能位於正確的位置,但src無法看到它。嘗試一些像"//images/unheart.png"

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