0

私がやりたいのは、ユーザーが色(div.colour_palette_box)をクリックしたときです。ビッグボックス(div.region)を更新したいです。問題は、いくつかのセット(div.color_set)があるため、コードを動的にする必要があることです。それらの 1 つを以下に示します。

これは私が言及しているUIです。

ここに画像の説明を入力

fire bug では、以下のようになります。

ここに画像の説明を入力

今まで試したことは。

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 に答える