0

我想要做的是当用户点击我想要更新大框(div.region)的颜色(div.colour_palette_box)时。问题是代码应该是动态的,因为我有几个集合(div.color_set)。其中之一如下所示。

这是我所指的 UI,

在此处输入图像描述

在火虫中,它将如下所示。

在此处输入图像描述

我到目前为止尝试的是。

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>

谢谢

4

4 回答 4

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"));
});

希望这会有所帮助

于 2012-11-12T05:14:32.523 回答
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);
});​
于 2012-11-12T05:15:17.360 回答
1

您需要进入同一个父级才能使用 .prev() 所以使用以下代码:

jQuery(this).parent().parent().prev('div.region')
于 2012-11-12T05:16:24.373 回答
0

region是父母的兄弟姐妹,box因为它不是祖先,closest所以不起作用

尝试:

$('.colour_palette_box').closest('.colorpalette').siblings('.region')
于 2012-11-12T05:13:53.353 回答