Jquery TimeOut 함수를 중지/오버라이드하는 방법
페이지 상의 사용자 액션에 대한 응답으로 화면 상단에 알림 메시지를 표시하는 작은 jquery 스니펫이 있습니다.통지는 동적 콘텐츠가 포함된 Ajax 작업 후에 표시되는 경우가 많습니다.
예를 들어 다음과 같습니다.
$("#mini-txt").html("Thank you!");
$("#mini").fadeIn("fast");
setTimeout(function() {$("#mini").animate({height: "hide", opacity: "hide"}, "medium");}, 3000);
통지는 사용자가 2개 이상의 액션을 연속적으로 실행하는 경우를 제외하고 정상적으로 동작합니다.단, 이 경우 TimeOut 함수는 자신을 혼란스럽게 하고 두 번째 메시지는 이전 3000밀리초 이내에 도착한 것으로 보입니다.
새로운 액션이 실행될 경우 이전 알림을 "삭제"할 수 있는 방법이 있습니까?액션/셀렉터에는 문제가 없고, 타임아웃 기능만 있으면 됩니다.멈추거나 무시하거나 둘 중 하나죠아니면 메시지가 사라지기 전에 몇 초 동안 화면에 남아 있게 하는 더 나은 대안이 있을까요?
감사해요.
첫 번째로, Return 값을 저장합니다.setTimeout
기능:
// Set the timeout
var timeout = setTimeout(function()
{
// Your function here
}, 2000);
그럼 타임아웃을 끝낼 준비가 되면...전화만 하면 돼clearTimeout
이전 호출에서 저장된 값을 사용하여setTimeout
.
// Then clearn the timeout
clearTimeout(timeout);
.stop()을 사용할 수 있습니다.
일치하는 요소에서 현재 실행 중인 애니메이션을 중지합니다.
jQuery 1.4에는 다음과 같은 애니메이션 지연을 처리하는 방법이 내장되어 있습니다.
$("#mini-txt").html("Thank you!");
$("#mini").fadeIn("fast").delay(3000).animate({height: "hide", opacity: "hide"}, "medium");
나중에 애니메이션 대기열을 정리할 때 다음을 수행할 수 있습니다.
$("#mini").stop(true);
그러면 지연 500ms로 기능 실행 후 타임아웃이 지워집니다.
var timeout = setTimeout(function(){
/* YOUR FUNCTION */
}, 500, function(){
clearTimeout(timeout);
});
언급URL : https://stackoverflow.com/questions/2578628/how-to-stop-override-a-jquery-timeout-function
'programing' 카테고리의 다른 글
jQuery - ajax POST의 폼 값을 가져옵니다. (0) | 2023.03.19 |
---|---|
WordPress 페이지의 html 코드를 편집하는 방법 (0) | 2023.03.19 |
Oracle SQL Devleoper에서 결과를 복사할 때 열 머리글도 어떻게 복사할 수 있습니까? (0) | 2023.03.19 |
react native에서 View 구성 요소를 비활성화할 수 있습니까? (0) | 2023.03.19 |
Json에게 말해.Net: 개체를 직렬화할 때 큰따옴표가 아닌 작은따옴표를 씁니다. (0) | 2023.03.19 |