我想要做的是当用户点击颜色(div.colour_palette_box)时我想要更新Big Box(div.region)。问题是代码应该是动态的,因为我有几个set(div.color_set)。其中一个如下所示。
这是我所指的用户界面,
在火虫中,它将如下所示。
我现在尝试的是。
jQuery('div#color_wrapper').on('click','div.colour_palette_box',function(){
//jQuery(this).closest('div.region');
//jQuery(this).prev('div.region');
//both does not work
});
上面的代码没有得到最接近点击的div.colour_palette_box的div.region?我怎么能得到它?
更新
实际HTML
<div class="color_set">
<div class="region">
<div colorpalette="colour_selection_box_bg" class="colour_box"></div>
<p>Product Background</p>
</div>
<div class="colour_selection_box_bg colorpalette" style="display: block;">
<img src="components/com_jink/assets/images/close_mark.jpg" class="colorpalette_close" />
<div class="colour_palette">
<div colorid="6" colorregion="bgcolor" style="background:#000000" class="colour_palette_box"></div>
<div colorid="7" colorregion="bgcolor" style="background:#00FF00" class="colour_palette_box"></div>
<div colorid="8" colorregion="bgcolor" style="background:#0000FF" class="colour_palette_box"></div>
<div colorid="9" colorregion="bgcolor" style="background:#FF0000" class="colour_palette_box"></div>
<div colorid="10" colorregion="bgcolor" style="background:#FFFF00" class="colour_palette_box"></div>
</div>
</div>
</div>
由于
答案 0 :(得分:1)
请改为尝试:
jQuery('div#color_wrapper').on('click','div.colour_palette_box',function(){
jQuery(this).parents("div.color_set").find("div.region")
.css("background", jQuery(this).css("background"));
});
希望这会有所帮助
答案 1 :(得分:1)
试试这个:
jQuery('div#color_wrapper').on('click', 'div.colour_palette_box', function() {
var bgColor = $(this).css("background-color");
$(this).closest("div.colorpalette").prev("div.region").css("background-color", bgColor);
});
答案 2 :(得分:1)
您需要让同一个父级使用.prev(),所以请使用以下代码:
jQuery(this).parent().parent().prev('div.region')
答案 3 :(得分:0)
region
是box
的父母的兄弟姐妹,所以因为它不是祖先closest
将不起作用
尝试:
$('.colour_palette_box').closest('.colorpalette').siblings('.region')