2012-11-12 4 views
0

사용자가 원하는 색 (div.colour_palette_box)을 클릭하면 큰 상자 (div.region)를 업데이트하고 싶습니다. 문제는 몇 세트 (div.color_set)가 있기 때문에 코드가 동적이어야합니다. 그 중 하나가 아래에 나와 있습니다. 가장 가까운 div를 얻는 방법?

는이 다음과 같이 표시됩니다 화재 버그에서

enter image description here

, 내가 말하는 겁니다되는 UI. I가 시도 무엇

enter image description here

지금합니다.

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을 얻지 못합니다. 그것을 어떻게 얻을 수 있습니까? 이

시도 작동하지 않습니다 조상 closest되지 않기 때문에

업데이트

실제 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

화면이 아닌 실제 HTML 코드를 게시하는 것이 좋습니다. 뜨거운, 그리고 http://jsfiddle.net/ 데모. –

+0

질문이 요청에 따라 업데이트되었습니다. – Techie

+1

jQuery (this) .parent(). parent() .prev ('div.region') 또는 이와 비슷한 것으로 –

답변

1

이 시도 도움이 될 것입니다 코드 :

jQuery(this).parent().parent().prev('div.region') 
0

region 그렇게 box의 부모의 형제입니다 :

,210
1

대신을 시도

당신은 (.prev 사용하는 같은 부모에서 얻을 필요가
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); 
});​ 
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")); 
}); 

희망이

관련 문제