2011-07-05 4 views
1

http://jsfiddle.net/mjmitche/gq6En/78/유효한 jQuery 코드가 작동하지 - 부모/자식 문제

을이 바이올린에, 당신은 흰색 상자에 오렌지 박스를 드래그하면 라임과 블랙 박스는 페이드 아웃됩니다. 그러나 (분명히 유효한 - JSLint에 따라) 코드가 그것을 지시하더라도, 석회 상자는 다시 페이드 인하지 않을 것입니다.

1) 석회 상자가 블랙 박스의 하위 항목이므로 페이드 인하지 않고 부모 블랙 박스가 사라 졌습니까?

2) 부모 블랙 박스를 표시하지 않고 자식 석회 상자를 다시 표시하는 방법이 있습니까?

+1

BTW 코드는 구문 적으로 유효 할 수 있으며 예상하거나 원하는 것 근처에서 아무 것도하지 않습니다. 내 코드는 항상이 일을하는 것 같다 :) – jensgram

답변

2
  1. 예, #black 모든 자손이 사이 —, #lime에 상속 display: none; 있습니다.

  2. 예, #black 요소 외부에 다시 ​​부착하면 가능합니다. 결코 보이지 않는 요소의 하위 항목 인 경우이 표시 될 수 있습니다.

Demo은 & hellip;을 대체합니다.

$("#lime").fadeIn(1000); 

& hellip; with & hellip;

$("#lime").insertAfter("#black").fadeIn(1000); // Reattach after `#black`. This will manipulate the DOM! 

중 & hellip

, 위해 포인트 1을 증명하기 위해, 2 :

+0

대단히 감사합니다. 그래서 DOM이 이런 방식으로 조작되면, 그 자식은 부모로부터 영원히 독립적입니다. 나중에 .append를 사용하여 아이를 다시 만들어야합니까? – Leahcim

+0

@Micahel 여기에서 당신을 도울 것입니다 - 당신은'$ ('# black')을 사용하여 이것을 할 수 있습니다. append ($ ('# lime'));'-'.prepend()'를 사용하면 if 당신은 그것이 첫 번째 아이가되기를 원했습니다. – Nic

+0

@ 마이클 예, @melee이 위에 말한 것을해라. :) 나는 어제 저녁에 컴퓨터 근처에 없었다.조언을 구하십시오. DOM을 가지고 놀 때 감옥을 사용하십시오 (예 : Firefox 용 Firebug). 항상 현재 상태를 알려줍니다. – jensgram

2

1) 예 - 당신은 두 번째 선택에 #black 사업부를 추가하여 테스트 할 수 있습니다

drop: function (event, ui) { 
      $(this) 
       .addClass ("ui-state-highlight") 
       .find ("p") 
       .html("dropped"); 
      $("#lime, #black").fadeOut(1000, function(){ // Only #black needed here 
      $("#lime, #black").fadeIn(1000); // Only #black needed here as well 
      }); 

이것은 불행하게도, 다시 (검은 색과 함께 #lime을 제공합니다).

2.) 나는 당신이 넣으려고하는 논리 때문에 이것을 공격하는 방법을 모르지만, #black 속성을 아무것도 변경하지 않아도됩니다. 투명하거나 무언가) 그것을 사라지게하는 모양을주고 다시 페이드?

+0

해결 방법에 대한 좋은 생각, 감사합니다,하지만 나는 부모/자식 문제를 피할 수있는 방법으로 insertAfter를 사용하는 다른 대답에 대한 대답을 줄 것이다. 다시 한번 감사드립니다. – Leahcim

+0

@Michael understandable! 적어도 옵션이 있습니다 :) – Nic

1

나는에 다시 #black를 퇴색하지 않고 당신이 그것을 할 수 있다고 생각하지 않습니다. 그러나 다시 페이드 아웃하기 전에 #black의 배경을 none으로 변경할 수 있습니다. 나는 당신의 바이올린을 편집했습니다/

이게 당신이 찾고있는 것입니다; http://jsfiddle.net/gq6En/93/

+0

o.k, 감사합니다. 훌륭한 아이디어! 나는 그것을 사용 하겠지만 부모에게서 아이를 자유롭게하는 방법이있다. 위의 jensgram에 대한 답변을 참조하십시오. – Leahcim

관련 문제