2014-04-08 2 views
0

업데이트 : 죄송합니다. 내 잘못입니다. 내 생각에 잘못되었습니다. replaceWith이 완료되지 않았기 때문이 아닙니다. 실제로는 isotope이 대체 된 요소에 적용되지 않았기 때문입니다. 현재 .isotope('destroy')을 사용 중이며 전체 페이지를 다시 작성합니다. 사용자가 페이지의 모든 요소를 ​​보게되므로 섹시하지 않습니다. 이제 isotope 문제가되고 있습니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?replaceWith()에 의해 대체 된 원소에 동위 원소가 적용 되었습니까?

html 요소를 ajax cal의 새 요소로 바꾸려면 replaceWith을 사용하고 있습니다. 그 후 reLayout (isotope 플러그인) 내 페이지가 필요합니다. 내 코드의

부분 :

success: function(result){ 
    var data = $(result); 
    div.replaceWith(data); 
    $(document).ready(function() { 
     $("div#columns").isotope('reLayout'); 
    }); 
} 

문제는 대체 요소이며, 기존의 요소는 replaed HTML 요소가 완전히로드되기 전에 페이지가 relayouted되기 때문에 것 같아요 overlapping.I 있습니다. 따라서 $(document).ready()을 추가했지만 여전히 작동하지 않았습니다. 그래서 replaceWith이 완료된 후 reLayout을 실행할 수있는 방법이 있는지 궁금합니다. 감사.

+0

replacewith 그래서 당신은 레이아웃 작업을 바로 할 수 있습니다 ... 동기 작업 후 replaceWith –

+2

시도'에서는 setTimeout (함수() { $ ("DIV 번호 열") 동위 원소 ('레이아웃 변경');. }, (1)); – Musa

답변

1

유무는 같은 문제가 있고, (위의 예에서 의역) 다음과 같은 솔루션을 사용하고 있습니다 :

div.replaceWith(data); 
$("div#columns").data('isotope').insert(div).layout(); 

이것은, 동위 원소 목록에 다시 추가 할 대체 된 것 항목을 원인과 소재 기존 레이아웃을 그런 다음 다시 적용됩니다 (사전에 존재하는 필터 및 정렬에서 상태를 유지하는 것처럼 보입니다).