2011-08-09 3 views
0

<div>으로 표시해야하지만 동적 인 <div>입니다. .info을 클릭하면 부모에게 먼저 <div>을 표시하고 싶습니다. ,형제 부모 div 표시 방법

$('.info').click(function(e){ 

    var ppp=$(this); 
    var parentDiv = $(this).parent().parent(); 
    parentDiv.show('slow'); // doesn't work  
}); 
+0

"dynamique"div는 무엇을 의미합니까? – kinakuta

+0

그리고 어떤 div는 정확히 그렇게 보여주고 싶습니까? –

답변

1

당신이 클릭하는 것은 당신이 보여주고 싶은 사업부의 후손되지 않습니다 :

HTML : :

<div id="mainDiv"> 
    <div class="myBox"> 
    <p><a href="#" id="close">Close</a></p> 
     Fist Div 
    </div> 

    <h5>Title <img src="info.gif" class="info" /></h5> 
    <div class="myBox"> 
    <p><a href="#" id="close">Close</a></p> 
     Second Div 
    </div> 

    <h5>Title <img src="info.gif" class="info" /></h5> 

</div> 

자바 스크립트

여기 내 코드입니다 그래서 parent().parent() 찾지 못할 것입니다. 그것은 부모 요소의 이전 형제, 그래서 (live example)입니다 :

$('.info').click(function(e){ 

    $(this).parent().prev('div').show('slow'); 

}); 

당신은 추가하는 경우 /, 그때에이 문제를 처리하기 위해 delegate를 사용하는 것 (즉, 당신이 "동적"는 무엇을 의미 인 경우)이 div의 제거 mainDiv 레벨 (live example) :

$('#mainDiv').delegate('.info', 'click', function() { 

    $(this).parent().prev('div').show('slow'); 

}); 

오프 주제 : 귀하의 HTML이 유효하지 않습니다, 당신은 두 개의 서로 다른 요소 ("가까운") 같은 id 값을 사용했습니다 에스. id이 페이지에서 고유해야합니다. 위의 라이브 예제에서 나는 id을 클래스로 변경하고 정적 및 동적 예제 모두에서 작동하게 만드는 방법을 보여 줬습니다.

+0

downvoter는 유용한 피드백을 공유하고 싶습니까? 문제가 보이지 않습니다. 대답은 명확하고 코드 예제가 있으며 실제 예제가 있으며 OP 게시 된 마크 업과 함께 작동합니다. –