2012-04-12 4 views
0

div가 동적으로 jQuery로 대체됩니다.jQuery로 대체 된 내용에는 CSS 스타일이 적용되지 않습니다.

내가 이런 일을 수행

$.get(url, function(result){ 
    $("#myDiv").replaceWith($(result)); 
} 

는 요청이 제대로 이루어지고, 마크 업이 문제없이로드를하지만 아약스 호출 ("반환")에 의해 반환되는 내용이 정확히 같은 경우에도 #myDiv (동일한 ID를 가진 요소가 있음) 중 일부 스타일이 올바르게 적용되지 않습니다.

이상한 점은 Chrome을 사용하여 잘못된 스타일의 요소를 마우스 오른쪽 버튼으로 클릭하고 '요소 검사'를 선택하면 스타일이 올바르게로드됩니다.

IE8에서 올바르게 작동합니다.

Chrome에서 어떤 원인이 될 수 있는지에 대한 아이디어가 있으십니까?

감사 어디서나

+0

귀하의 스타일 시트가 id로 요소를 조회한다는 것을 의미합니까? 클래스를 통해 스타일을 지정하고 클래스를 'result'에 추가해야 할 수도 있습니다. – veeTrain

답변

0

당신이 jQuery를 기능 removeAttr 사용하고 ('스타일')? 크롬이나 다른 웹킷 브라우저에서 때때로 문제를 일으키는 것으로 알려져 있습니다. http://bugs.jquery.com/ticket/9699

+0

아니요, js의 스타일 수정이 전혀 없습니다 – willvv

0

크롬의 DOM 선택기는 IE8보다 훨씬 엄격합니다.

해당 요소에 고유 한 경우에도 ID가 아닌 클래스별로 요소를 타겟팅하는 것이 좋습니다.

+0

시도해 보았지만 동일한 동작을합니다. – willvv

1

다시 그리기가 실행되지 않는 것처럼 들립니다. 다음과 같이 바꾸면 스타일 변경을 시도 할 수 있습니다.

$(some_selector_in_the_result).css('display','block'); 
1

실제로 방금 해결책을 찾았습니다.

정확하게 스타일이 지정되지 않은 요소는 절대 위치를 가진 div입니다.

맨 아래 위치 만 설정하고 왼쪽 위치는 설정하지 않았습니다 (0).

CSS에 왼쪽을 명시 적으로 0으로 설정했는데 이제는 정상적으로 보입니다.

Chrome에서 기본 위치는 분명히 다릅니다.

관련 문제