2015-09-17 38 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