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 (값)}이 아닙니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.