2010-10-24 82 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