jquery에서 settimeout과 setInterval을 사용할 때 주의사항

3073 단어 jquerysettimeoutse
예전에는 타이머를 쓸 때 항상 직접적으로 쓰는 것이 습관이 되었다
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을 내장해서 쓸 수 있습니다.
$(function(){setInterval(function(){fn(para)},2000);}) 
그래도 돼요. 
두 번째 방법이 어떻게 전달되는지, 이것은 더욱 간단하다. 나는 더 이상 말하지 않겠다. 
블로그에 올리는 것은 기억으로만 사용하는 것이 모두 기초입니다!초보자도 실수하기 쉬운 곳! 
//======================== 
두 번째 전삼을 보충하는 방법인가? 
먼저 세그먼트 코드를 보십시오
 
  
$(function(){ 
$start = 1; 
$.extend({ 
a:function(t){ 
$index = t; 
alert($index); 
$start++; 

}); 
setInterval("$.a("+$start+")",2000); 
}); 

어떤 사람들은 이렇게 쓰려고 시도하는데, 결과는 무엇입니까?결과는alert에서 나온 것으로 줄곧 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 (변수)}에 해당하며, function () {a (값)}이 아닙니다.

좋은 웹페이지 즐겨찾기