저는 배너 회전자를 쓰고 있습니다. 몇 초 후에 몇 장의 사진 사이를 전환하고 싶습니다. jQuery에는 대기하고 콜백을 호출 할 수있는 것이 있습니까? .delay 메서드를 볼 수 있지만 콜백 함수가없는 것 같습니다. 아니면 브라우저 의존 함수를 사용해야합니까? 아니면 자바 스크립트가 이미 필요한 기능을 포함하고 있습니까? 자바 스크립트를 처음 사용합니다 : - | .jQuery에서 타이밍/대기
0
A
답변
3
당신은 항상 기본 자바 스크립트를 사용할 수 있습니다 : 당신이 무엇을 원하는 경우
var timeoutCallback = function() {
this.foo = 5;
}
var scheduleTimeout = function(obj, delay) {
setTimeout(function(){ timeoutCallback.call(obj); }, delay);
}
var myobj = { foo: 1, bar: 2 }
scheduleTimeout(myobj, 1000); // myobj.foo becomes 5 after 1000ms delay
0
당신은 지연 being
이동하는 방법에 대한 맞다 : 당신은 유지 mixin과 재미를 가질 수 있습니다
setTimeout(function(){ /* do your stuff */ }, 1000);
을 시간은 jQuery 효과입니다.
jQuery documentation on effects을보고 효과 대기열의 작동 방식에주의를 기울여보십시오. 매우 멋진 프레임 워크입니다. :)
0
그래서 효과를 즉시 시작해야하지만 얼마 후? 자, 이것은 지연() 함수입니다.
$("#test").delay(3000).fadeOut('slow');
// after 3 seconds element starts to fade out
P.
그러나 신중하게 지연하십시오. 예 :이 코드의 예 :
$("#test").fadeOut(1000).sleep(1000).fadeIn(1000);
누군가가 생각하는 것처럼 작동하지 않습니다. 수면은 fadeOut과 동기로 실행되지만 종료 후에는 실행되지 않습니다. 따라서 효과를 완성하고 무언가를 만들기보다는 콜백 기능을 통해 만들어야합니다.
0
이것은 내가 생각할 수있는 가장 단순한 예이며 Joy Dutta가 이미 말한 것의 압축 된 버전입니다. 먼저 "기다려주십시오"와 3 초 후에 "... 완료되었습니다!"라는 메시지가 표시됩니다. Firebug 콘솔에 던져서 무슨 일이 일어나는 지 알 수 있습니다 :-)
$('body').html('Please wait!');
setTimeout(function(){$('body').html('...done!');}, 3000);
'.call'가 제대로 작동합니까? 'this'가 anon 함수 안에있는'window' 객체를 가리 키지 않습니까? –
맞습니다. 지금 작동하는지 확인한 후 게시물을 편집했습니다. 감사! –