HTML 페이지의 "head"섹션 내에 두 개의 사용자 정의 함수를 만들었고 닫는 "body"태그 바로 전에 스크립트로 호출했습니다. 문제는 첫 번째 함수 (경고를 무시할 때까지 실행을 중단시키는)에 "alert"문을 포함하지 않으면 두 번째 함수가 작동하지 않는다는 것입니다.두 번째 jQuery 함수가 실행되지 않습니다.
나는 첫 번째 함수가 두 번째 것이 시작되기 전에 실제로 완전히 끝나지 않아서 내 경고문을 가지기 때문에 첫 번째 함수가 완료 될 시간이 있다고 생각합니다.
기능 중 하나는 DIV 태그에 이미지 목록을 작성하는 것입니다. 기능 2는 FlexSlider를 구현하여 이미지의 슬라이드 쇼를 시작합니다.
아래 내용을 그대로 사용하면 모든 이미지가 표시된 페이지가 렌더링됩니다. 경고 상자의 주석을 지우고 다시 실행하면 화면이 내 이미지로 렌더링되고 경고 상자가 닫히고 FlexSlider가 시작되어 슬라이드 쇼가 시작됩니다.
"head"섹션에 정의 된 두 가지 기능은 다음과 같습니다.
<script type="text/javascript">
var buildslider = function() {
$.ajax({
type: "GET",
url: "/myImages/homepageslider/PhotoGallery.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('img').each(function() {
var location = '/myImages/homepageslider/';
var url = $(this).attr('src');
var alt = $(this).attr('alt');
$('<div class="slide-group"></div>').html('<img src="'+location+''+url+'" alt="'+alt+'"/>').appendTo('.slides');
});
}
});
//alert("buildslider finished");
};
var runslider = function() {
$('.flexslider').flexslider({
selector: '.slides > .slide-group',
controlNav: false,
directionNav: false
});
};
</script>
다음은 "body"태그 근처의 코드입니다.
<script>
$(document).ready(function() {
buildslider();
runslider();
});
</script>
무엇이 잘못 되었습니까? 그리고 올바르게 수정하려면 어떻게해야합니까?
미리 감사드립니다. 데이비드.
두 번째 함수는 첫 번째 함수의 성공 이벤트를 호출해야합니다. –
첫 번째 함수는 나중에 완료되는 비동기 연산을 시작한 다음 결과가 반환되기 전에 두 번째 함수가 즉각 실행됩니다. * –
참고 : 준비를 사용하지 않고 수행 할 수 있습니다. .. –