>웹 프론트엔드 >JS 튜토리얼 >jQuery_jquery에서 setInterval 및 setTimeout 사용에 대한 참고 사항

jQuery_jquery에서 setInterval 및 setTimeout 사용에 대한 참고 사항

WBOY
WBOY원래의
2016-05-16 18:01:431046검색

예전에는 타이머를 작성할 때 항상

setInterval("fn()",2000);
최근에 jquery를 사용하여 타이머를 작성할 때 항상 fn이 나타나는 문제가 발생했습니다. 존재하는 오류 메시지는 다음과 같습니다

$(function(){setInterval("fn()",2000);})
해결책은 따옴표와 대괄호를 제거하고 가장 독창적인 방법을 사용하는 것입니다

$(function(){setInterval(fn,2000);})
다른 방법은 다음과 같이 jq의 확장을 작성하는 것입니다

코드 복사 코드는 다음과 같습니다.

$(function(){
$.extend({
fn:function() {
alert("im fn!");
}
})
setInterval("$.fn()",2000)

위 내용은 모두 기재되어 있으니 문제 없습니다. 하지만 매개변수를 전달해야 한다면 어떻게 될까요?

위의 첫 번째 작성 방법처럼

$(function(){setInterval(fn,2000);})


$(function () {setInterval(fn(para),2000);})
에서 오류를 보고했습니다. 이것은 더 고전적이고 더 멍청합니다.

이때 함수를 빌드하여

$(function(){setInterval(function(){fn(para)},2000);})
이것도 가능합니다.

두 번째 방법을 전달하는 방법은 이것이 더 간단하므로 더 이상 말하지 않겠습니다.

블로그에 올리는 것은 메모리용으로만 사용하는 것은 기본입니다! 초보자들이 실수하기 쉬운 부분이기도 합니다!


//===========================

두 번째 유형을 추가하겠습니다. 매개변수 전달 방식.

코드를 먼저 보세요

코드를 복사하세요 코드는 다음과 같습니다
$( function(){
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index ); $start ;
}
})
setInterval("$.a(" $start ")",2000)


어떤 사람들은 이렇게 글을 쓰려고 하는데, 결과는 어떻게 될까요? 결과는 항상 1이고 증가하지 않는 경고입니다. 여기서 주목해야 할 것은 setInterval의 첫 번째 매개변수입니다. 이는 큰따옴표로 묶인 명령문이며, 그 안의 내용은 변수로 해석됩니다. 위의 작성 방법을 따르면
setInterval("$.a(1)",2000)
과 같습니다. 그러면 결과가 이해됩니다. 올바른 작성 방법은 당연히



코드 복사 코드는 다음과 같습니다. $(function() {
$start = 1;
$.extend({
a:function(t){
$index = t;
alert($index);
$start;
}
})
setInterval("$.a($start)",2000)
}); 이번에는 $start가 변수로 해석됩니다. 이 명령문은 function(){a(value)}가 아니라 function(){a(variable)}과 동일합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.