2010-10-24 115 views
1

因爲我是jQuery的新手,所以我遇到了一些問題。我有兩個帶產品圖片的div,在它們下面我有幾個「顏色選擇器」讓客戶看看可用的顏色。當用戶懸停其中一個「鏈接」時,我有一個新的div顯示一個顏色。 Bla bla ...我遇到的問題是它始終從第一個「color_selector」中挑選ID,即使我在第二個color_selector跨度中懸停鏈接時也是如此。jQuery屬性不會改變

編輯:我不能在文本中發佈多個超鏈接,所以我已將所有<a>標籤更改爲<hyperlink>

<div class="product_color" id="color_product01_content"></div> 
<span class="color_selsector" id="color_product01"> 
    <hyperlink href="javascript:void(0);" class="color_trigger" rel="000000">Product 01 color 01</hyperlink> 
    <hyperlink href="javascript:void(0);" class="color_trigger" rel="efefef">Product 01 color 02</hyperlink> 
</span> 
<div class="product_color" id="color_product02_content"></div> 
<span class="color_selsector" id="color_product02"> 
    <hyperlink href="javascript:void(0);" class="color_trigger" rel="000000">Product 02 color 01</hyperlink> 
    <hyperlink href="javascript:void(0);" class="color_trigger" rel="efefef">Product 02 color 02</hyperlink> 
</span> 

而jQuery的:

$('a.color_trigger').mouseover(function(){ 
    var contentPanelId = $(".color_selector").attr("id"); 
    var valueColor = jQuery(this).attr("rel"); 
    $("#" + contentPanelId + "_content").css({"background-color" : "#" + valueColor, "display" : "block"}); 
}); 

回答

1

你需要得到一個包含this.color_selector,就像這樣:

var contentPanelId = $(this).closest(".color_selector").attr("id"); 

.closest method發現,選擇相匹配的元素的最近的父。

+0

非常感謝。我真的很感激,SLaks! – Walker 2010-10-24 16:29:00

+0

不客氣。 – SLaks 2010-10-24 16:36:26

0

嘗試通過

var contentPanelId = $(this).parent().attr("id"); 

這應該更換

var contentPanelId = $(".color_selector").attr("id"); 

+0

謝謝錯過了你的答案。這也行得通,謝謝! – Walker 2010-10-24 16:43:31