2013-07-09 3 views
0

멍청한 질문에 사과드립니다. 나는 초기에 여기에서 몇 가지 해답을 만났지만 이제는 찾을 수 없다. I (예를 들어)이 있습니다부모 노드를 다른 노드로 변경

<div id="div1"> 
    <div id="move"> 
     1 
    </div> 
</div> 
<div id="div2"> 
</div> 

내가 #move (예를 들어, .click() 바인딩 타 물건)에 바인더 제본 한 것을 잃지 않고 #div2#div1에서 #move의 부모를 변경할 수있는 올바른 방법은 무엇입니까?

예제 코드 :

$('#move').animate({ //hide 
     width: 'toggle', 
     height: 'toggle', 
     }, 1000, function() { 
     $('#div2').prepend($(this)); //move (when animation finished) 
     $(this).animate({ //show again 
      width: 'toggle', 
      height: 'toggle', 
      }, 1000); 

}); 

그게 내가이 권리 (예를 들어, 내가 이전 부모에서 수동으로 $(this)를 제거하지 마십시오했을 경우 아직도 내가 모르는 아마 jQuery를가 그것을 수행, 작업 보인다. 나, 내가 브라우저 디버거를 사용할 때 그 노드가 이전 위치에 보이지 않기 때문에).

+0

.on() – melancia

+0

바보 같은 질문이 없다 :) –

+0

대신에 .prepend (this);를 사용해야한다. –

답변

1

당신이하는 일은 정확합니다. 어딘가에서 div에 추가 할 필요가 없으며 원본을 제거해야합니다 ... jQuery가 div를 옮깁니다. 사실 복사를하려면 clone() 함수를 사용하여 매우 구체적이어야합니다.

그래서 prepend, append, after, insert 등의 함수는 div 주위에 모든 것을 첨부하여 div를 이동시킵니다. 나는 그것이 또한 클릭 바인딩을 유지한다고 확신한다.

+0

답변 해 주셔서 감사합니다. 누군가가 더 나은 해결책이나 그 접근법에 대한 이슈를 알고있는 경우에 대비하여 Q를 잠시 닫을 것입니다. – haldagan

+0

여러분을 환영합니다! –

관련 문제