두 개의 div, #content 및 #contentSwap이 있습니다. #contentSwap에 데이터를로드하고 몇 가지 작업을 수행 한 다음 #content로 교체합니다. 저는 html() 함수를 사용하여 두 가지를 교환했지만이 문제가 발생했다는 것을 깨달았습니다. click()을 사용하여 #contentSwap에 앵커에 할당 한 함수가 손실되었습니다. 코드 예는 다음과 같습니다.바운드 이벤트 핸들러를 유지하면서 jQuery로 두 div 바꾸기
$('#contentSwap').html(data);
$('#contentSwap a').each(function(){
$(this).click(function(){
// Do whatever
});
});
$('#content').html($('#contentSwap').html());
$('#contentSwap').html("");
이후에 #content에서 할당 된 기능이 작동하지 않습니다.
그러나 각 div의 id를 수정하는 데 attr() 함수를 사용하면 click() 함수가 계속 사용됩니다. 내가 효과적으로 #content 및 #contentSwap를 교환 할 수있는 방법
$('#content').attr("id", "contentSwap1");
$('#contentSwap').attr("id", "content");
$('#contentSwap1').attr("id", "contentSwap");
$('#contentSwap').html("");
:하지만이 모든 시간을 작동하고, #content 및 #contentSwap 등 다음의 여러 사본을 포함하여 버그의 모든 종류가 발생하지 않는 것은 그 코드입니다 내가 할당 한 click() 함수를 잃지 않고?
당신은 분리 '에 대해 읽어보십시오()' – gdoron
이 하나 밖에 체격! 두 번째 코드 블록은 작동했지만 제공 한 #contentSwap div는 #content div와 같은 위치에 없었습니다. 나는 그것을 적당한 공간으로 옮겼고 지금은 훌륭하게 작동합니다. – TGPrankster
당신이 MooTools 개발자라고 추측합니다 :) –