페이지에 이미지 버그를 미리로드 : IE6-8에서 http://phwsinc.com/our-work/one-rincon-hill.asp질문에 IE6-8
, 당신은 결코로드 갤러리에서 이미지를 가장 왼쪽의 썸네일을 클릭하면. 섬네일을 두 번 클릭하면로드됩니다. 내가 jQuery를 사용하고, 여기에 갤러리를 전원의 내 코드는 다음과 같습니다
동료는 그가 항상 JS 이미지() 객체에 문제가 있고, 단지의 내부<img />
요소를 추가 할 충고 있다고 나에게 말했다
$(document).ready(function() {
// PROJECT PHOTO GALLERY
var thumbs = $('.thumbs li a');
var photoWrapper = $('div.photoWrapper');
if (thumbs.length) {
thumbs.click(function(){
photoWrapper.addClass('loading');
var img_src = $(this).attr('href');
// The two lines below are what cause the bug in IE. They make the gallery run much faster in other browsers, though.
var new_img = new Image();
new_img.src = img_src;
var photo = $('#photo');
photo.fadeOut('slow', function() {
photo.attr('src', img_src);
photo.load(function() {
photoWrapper.removeClass('loading');
photo.fadeIn('slow');
});
});
return false;
});
}
});
div가 display:none;
으로 설정되었지만 내 취향에 다소 지저분합니다. Image() 객체를 사용하는 것이 좋았습니다. 물건을 멋지게 정리하고 불필요하게 HTML 마크 업을 추가하지 않았습니다.
도움을 주시면 감사하겠습니다. 이미지 미리로드가 없어도 여전히 작동하므로 다른 모든 것이 실패 할 경우 사전로드를 if !($.browser.msie){ }
에 랩하고 하루 만 부릅니다.
이
내가 당신이라면 내가 대신 각처럼 클릭에 그 일에, 별도로 #의 photo''에 대해 "로드"핸들러를 설정합니다 그. – Pointy
코드 샘플을 제공 할 수 있습니까? 섬네일을 클릭 할 때마다로드 핸들러가 실행될 필요가 없으므로 새 이미지가로드되고 있습니까? 그렇지 않으면 $ (document) .ready()에서만 1 번만 실행됩니다. –