이 코드를 사용하기 전에 이미지의 onload 이벤트에 브라우저 간 문제가 여러 개 있습니다. They are described in the documentation for jQuery's .load
method.
지연된 개체를 만들고 각 이미지의 onload 함수를 기반으로 파이프해야합니다.
는
$.when.apply($,$.map(hrefs, function(href) {
var imgLoad = $.Deferred(),
$img = $('<img>').css('height',windowHeight);
ul.append($('<li>').append($img));
$img.load($.proxy(imgLoad.resolve,imgLoad));
$img.attr('src',href);
return imgLoad;
})).done(function(){
// all images are loaded when this executes
})
이 코드 지연된 오브젝트의 배열로 배열하는 HREF 우회전 jQuery.map
를 이용한다. 이미지를 루핑하고 추가하는 동안 각 이미지는 자체의 지연 객체를 얻습니다.이 객체의 .resolve
메서드는 이미지의 .load
처리기에 바인딩됩니다. 이미지가로드되면 지연이 해결됩니다.
이 지연 배열은 jQuery.when
에 인수로 적용되며 모든 인수가 해결 될 때 해결되는 약속을 반환합니다.이 경우 모든 이미지가로드되었음을 나타냅니다. 그런 다음 Promise에 .done
콜백을 첨부합니다.
안녕하세요, 내 상황에서 어떻게 작동합니까? 클릭 할 때이 코드를 트리거하는 요소가 있습니다. 그것은 슬라이더에 더 많은 이미지를로드 ... – Dan