2011-04-27 315 views
2

我有以下線的問題:jQuery和CSS背景變化

document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)"; 

我想點擊一個label後更改背景圖片。

我在頁面上有5 label s,但是當我點擊label時,背景應該改變它。其他標籤應該重置爲使用這個giftcard_icon-d.jpg圖片作爲他們的背景。

我該如何解決這個問題?

$(document).ready(function() { 
    $('#giftcard label').click(function() { 
     document.getElementById("giftcard").getElementsByTagName("label").style.backgroundImage ="url(giftcard_icon-d.jpg)"; 
     this.style.backgroundImage ="url(giftcard_icon-a.jpg)";  
}); 
+0

你能發表一些html嗎? – LostLin 2011-04-27 20:25:25

+0

究竟發生了什麼?他們都沒有背景變化? – 2011-04-27 20:27:19

回答

4

如果你使用jQuery,這應該做的伎倆:

$(document).ready(function() { 
    $('#giftcard label').click(function() { 
     $("#giftcard label").css("background-image", "url(giftcard_icon-a.jpg)"); 
    }); 
}); 

但也要看標識是否正確,標籤存在,且圖像URL是有效的。

對於多label的你應該確定一個選擇:

$("#giftcard > label").css("background-image", "url(giftcard_icon-a.jpg)"); 

要總結什麼是你想要的後更新:

$('#giftcard label').click(function() { 
    $("#giftcard label").css("background-image", "url(giftcard_icon-d.jpg)"); 
    $(this).css("background-image", "url(giftcard_icon-a.jpg)");   
}); 
+0

完美!它現在有效。 (「#giftcard label」)。css(「background-image」,「url(giftcard_icon-d.jpg)」);($('#giftcard label')。 ) 「); \t this.style.backgroundImage =」 URL(giftcard_icon-A.JPG)「; \t \t \t \t }); \t \t' – 2011-04-27 20:37:28

+0

是的,我發佈後正確解決了你想要的問題 - 我將其添加到答案中。 – 2011-04-27 20:40:10

2

首先您的混合香草的JavaScript和jQuery這裏,似乎有點傻。如果你想改變其他標籤爲「復位」他們,你可以做這樣的事情:

$(document).ready(function() { 

    $('#giftcard').delegate('label', 'click', function() { 

    $(this).css('background', 'url(giftcard_icon-d.jpg)'); 

    $('#giftcard > label').not(this) 
    .css('background', 'url(giftcard_icon-a.jpg)'); 

    }); 

}); 

小提琴:http://jsfiddle.net/garreh/GUFtx/

+0

很好,這個工程。 – 2011-04-27 20:42:48

1

如果我的理解是正確這應該做的伎倆

$(function() { 
    $('#giftcard label').click(function() { 
     $('#giftcard label').css("background-image", "url(giftcard_icon-d.jpg)"); 
     $(this).css("background-image", "url(giftcard_icon-a.jpg)"); 
    }); 
}); 

工作樣本 http://jsfiddle.net/FvNdR/

+0

這就是我所做的:) – 2011-04-27 20:43:25

+0

@XML傢伙我猜你的疑問只是如何設置jQuery的樣式屬性,當@Mr。失望張貼他的答案,你有想法,並由你自己解決。 – 2011-04-27 20:45:00