2015-09-17 95 views
-3

當勾選複選框時,嘗試更改字體真棒的狀態,心臟應該變爲紅色。無法找到正確的方法來使其工作。更改點擊jquery的狀態

我可以點擊心臟並隱藏複選框嗎?我知道它的一些東西:在css之前,但並不完全確定。

http://jsfiddle.net/xd8LbtLz/

$('.addToFav').click(function(){ 
    if($(this).prop('checked')){ 
     console.log('change heart to red'); 
    } else { 
     console.log('do nothing atm'); 
    } 
}) 
+0

,什麼是心臟? –

+1

您沒有在巡演小提琴中連接jQuery庫。 http://jsfiddle.net/xd8LbtLz/1/ –

+1

添加jQuery後,你的日誌記錄工作正常 - http://jsfiddle.net/xd8LbtLz/2/ – nikhil

回答

0

幾點

1)你的小提琴沒有包含了jQuery庫。您需要包含使用jq語法的內容。

2)使用更改事件比單擊事件複選框更合適。

3)使用電流檢查屬性來設置顏色圖標.fa-heart

$('.addToFav').change(function(){ 
    $(this).prev().css('color',this.checked ? "red":"black"); 
}); 

Working Demo

+0

很酷的感謝,但它檢查所有的心,我需要他們單獨檢查雖然。 – MrNew

+0

@MrNew:檢查更新。 –

2

首先,你撥弄不包括jQuery的。其次,當你可以直接訪問元素本身時,使用prop來訪問jQuery對象中元素的屬性沒有意義。最後,您可以使用toggleClass()來添加或刪除CSS類以更改心臟的顏色。試試這個:

$('.addToFav').click(function() { 
    $('.fa-heart').toggleClass('red', this.checked); 
}) 

Example fiddle

0

可以使用,

$('.addToFav').click(function() { 
    if ($(this).prop('checked')) { 
     $(this).prev().find("i").css("color", "red"); 
    } else { 
     $(this).prev().find("i").css("color", "black"); 
    } 
}) 

Fiddle