이것은 이전에 아마도 답변을 받았을 것입니다. 그리고 나는 이것이 어떻게 작동해야하는지 이미 알고 있지만, 어떤 이유로 그것이 아닙니다. 나는 그것이 어떻게 요소들을 반복 하는지를 생각할 수 있습니다.갤러리의 목록 항목을 회전하는 jQuery
$(document).ready(function() {
var element = '#gallery ul#gallery-container';
var idx=0;
var timeout = 3000;
var number = $(element + ' li').length;
function changeSlide() {
$(element + ' li:eq(' + idx + ')').fadeOut();
idx = idx + 1;
if (idx == number) {
idx=0;
}
$(element + ' li:eq(' + idx + ')').fadeIn().delay(timeout).delay(0, function() {
changeSlide();
});;
}
$(element + ' li').hide();
$(element + ' li:first').fadeIn().delay(timeout).delay(0, function() {
changeSlide();
});
});
그런 다음 목록은 다음과 같이이다 :
<div id="gallery">
<ul id="gallery-container">
<li><img src="media/images/screen-shot-02.jpg" width="173" height="258" alt=" "></li>
<li><img src="media/images/screen-shot-01.jpg" width="173" height="258" alt=" "></li>
</ul>
</div>
목록 항목이 함수를 호출하고 자신을 숨 깁니다 그래서 나는 지연 후, 하나의 요소의 하나를 통해 루프를 얻으려고 노력했다, 카운터가 증가되고 현재 색인이 표시됩니다. 는 나는 그것을 호출되는 함수에 경고를 넣어 마치 범인이로 의심 :
$(element + ' li:eq(' + idx + ')').fadeOut();
이 http://api.jquery.com/delay/에 따르면'delay()'함수에는 콜백 함수가 없으므로'changeSlide()'가 실행되지 않습니다. 나는 생각하고 있습니다. –
어떤 이유로 인해 changeSlide()가 처음 호출되었지만 $ (element + 'li : eq ('+ idx + ')') 함수에 도달하면 fadeOut(); 호출되지 않습니다. 나는 setTimeout에 의지해야하고 그것으로 작업해야 할 수도 있습니다! – Designer023
예,'changeSlide()'의 마지막 줄에 두 개의';;'를 적어두면 스크립트를 멈추게됩니다. –