2014-04-29 2 views
1

IE8에서 div 너비를 얻는 데 문제가 있습니다. FF 및 크롬에서는 문제가 없습니다. IE에서 너비가 0이고 FF와 크롬에서 1366이됩니다.jquery 너비 문제

 $('.fs-pic').width(); 

HTML은 :

<div class="fs-pic"> <img id="full" src=""/></div> 

나는 FS-그림 클래스에 자동으로 폭을 넣었습니다.

위의 행은 IE에서 0을 반환합니다. IE에 대한 대안이 있습니까? 도움주세요.

+0

어떤 JQuery 버전을 사용하고 있습니까? – Vucko

+0

@Vucko jquery 1.10.2 – Vidia

+0

준비가 된 코드를 사용해보세요 ..... –

답변

0

$(document).ready()에 넣었습니까? $(window).load()로 이동하십시오. 이미지 (컨테이너 너비를 만드는 중)가 아직로드되지 않았으므로 생각합니다. 0을 반환했습니다.

0

문서 준비가 아닌 $(window).load(function(){...});을 사용해보세요.

여전히 작동하지 않는다면 타이머를 사용하여 DOM을 완전히 렌더링하고 속도를 조금 높일 수 있습니다 (1000이 작동하지 않으면 3000으로 시도).

jQuery(document).ready(function() { 
    setTimeout(function() { 
     alert(jQuery('.fs-pic').width()); 

     jQuery('#accordion-wrapper').raccordion({ 
      speed: 1000, 
      sliderWidth: jQuery('.fs-pic').width(), 
      sliderHeight: 360, 
      autoCollapse: false 
     }); 
    }, 100); 
}); 

나는 outerWidth()innerWidth() 도울 수있는 것으로 나타났습니다하지만 그 시도하지 않았습니다.

0

문서 준비가 완료되면 DOM을로드하고 dom이로드되지 않았으므로 dom이로드되기 전에 호출합니다. IE 브라우저가 FF와 Chrome에 비해로드 시간이 더 걸립니다.

$(document).ready(function(){ 
    $('.fs-pic').width(); 
}); 
0

이미지에 load-event을 추가 할 수 있습니다. 이미지는 이벤트가 발생로드 할 때 : 내가 JSFiddle 작업 한

$(document).ready(function() { 
    $('.fs-pic img').load(function() { 
     alert($('.fs-pic').width())); 
    }); 
}); 

, 당신을 보여줍니다 심지어는 큰 이미지를로드하거나 느린 연결 또는 느린 브라우저의 폭이 크롬에서 JSFiddle을 다시 실행하면 이미지가 브라우저 캐시에 저장되므로 $(document).ready() 내부의 너비에 액세스해도 작동합니다.