2013-04-16 3 views
0

Parent-1에 사용자가 클릭 한 후 하위의 두 번째 div에로드하는 경우jQuery를 : HTML (데이터) 기존의 요소

<div id='branch-1'> 
    <ul> 
    <li><span>Parent-1</span></li> 
    <li><span>Parent-2</span></li> 
    <li><span>Parent-3</span></li> 
    </ul> 
</div> 
<div id='branch-2'></div> 
<div id='branch-3'></div> 

먼저 div 요소, 페이지가로드됩니다 다음과 같이 내가 세 div 요소를했습니다를 삭제하지 , Parent-2 and Parent-3에 대해서도 마찬가지로 다음과 같이 ajax을 사용하십시오.

$("div#branch-1 ul li span").click(function() { 
    $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data, 
     dataType: 'html', 
     async: false, 
     success: function (data) { 
      $("div#branch-2").html(data); 
      $("div#branch-3").empty(); 
     } 
    }); 
});  

div 요소에 사용자가 클릭 한 후 내가

$(document).on("click", "div#branch-2 ul li span"function() { 
    $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data, 
     dataType: 'html', 
     async: false, 
     success: function (data) { 
      $("div#branch-3").html(data); 
     } 
    }); 
}); 

실제 질문은 다음과 같이 ajax를 사용하는 제 3 div에 그 자식 요소를로드하고있어 다시 경우 : 때때로 $("div#branch-3").html(data); 기존 데이터를 삭제되지 않습니다, 그런 이유로 나는 전에 다음 진술을 시도했다. $("div#branch-3").html(data);

$("div#branch-3").html(""); // Not worked 
//OR 
$("div#branch-3").empty(); // Not worked 
//OR 
$("div#branch-3").contents().remove(); // Not worked 
나는 모든 위의 문이 제대로 작동하는 div#branch-3 ul 또는 div#branch-3 li 또는 div#branch-3 spandiv#branch-3에서 selector 이상 변경하는 경우

, html(data) 기존 데이터를 대체 할 수없는 이유

  1. ? 는 IS, 가끔.html(data) 기존 데이터를 삭제하지 않는 위에서 말했듯이 다음
  2. 내가

추가 정보 추가 parent element idselector로 통과하고있어 비록 자사의 기존 요소를 삭제하는 이유 selector을 변경 한 후

Parent-1에 대한 가정의 경우 두 아이의이 Child-1,Child-2을 말할 수있는, 다시 Child-1는이 두 아이의 A,B 및사용자가 다음 X,YA,B하지만 Z로 교체하는 Child-1에 사용자가 클릭이 여전히 존재 다시 경우, 다음 X,Y,Zbranch-3 div의 벌금 보이고있다 Child-2를 클릭하면세 아이의 X,Y,Z .Think 있습니다. 나는 그 (Z) 위치를 불을 지른 다음 그 지점을 가리 키려고한다. success 함수가 호출되지 않습니다 - 내가 생각하는

+0

새 데이터를 바꾸는 대신 이전 내용과 병합한다는 의미입니까? 아니면 데이터를 전혀 변경하지 않습니까? – Barmar

+0

나는 이런 행동을 한 번도 해 본 적이 없으며 웹 응용 프로그램에서 .html() 및 .empty()를 많이 사용하고 있습니다. 콜백이 잘 호출되는지 확신합니까? 콘솔 (F12)을 사용하여 디버그 중단 점을 만들려고 했습니까? – sdespont

+0

@Barmar : 부모 -1에 두 명의 자녀 (Child-1, Child-2)가 있었고 다시 Child-1에 두 명의 자녀 (A, B)가 있고 Child-2에 세 명의 자녀 (X, Y, Z)가 있습니다. .사용자가 Child-2를 클릭하면'X, Y, Z'가'branch-3' div에 잘 보이고, 다시 Child-1을 클릭하면 X, Y가 A, B로 바뀌지 만 Z는 여전히 있다. 만약 (Z) 위치가 불그스레 한 다음 가리킨다면 사라집니다. –

답변

0

가 문제가 있다는 것입니다, 사실 this-

$("div#branch-3").html(markUp).trigger("create"); 
+0

내가 원하는 것을 어떻게 얻을 수 있는지는 모르지만 그 고유 한 동작에 대한 이유를 알고 싶습니다. –

+0

은 브라우저를 사용하는 데 wats를 사용합니까? –

+0

'chorme와 FF'에서 확인 됨 –

0

을보십시오. 이 올바른 생각은 당신의 성공에 대한 경고 추가 ("나에요!") 성공 여부를 확인하는 것입니다 :

success: function (data) { 
     alert("I'm in!"); 
     $("div#branch-3").html(data); 
    } 
+0

'ajax' 호출에 문제가 없습니다. 제안한 방법을 확인했습니다. 나는 '아약스'콜에서 데이터를 얻고있다. –

+0

경고 ("나!") 전화가오고 있습니까? – Maris

관련 문제