2015-12-31 3 views
1

myfucntion = отправить запрос через 5 секКак остановить функцию на смазывание()

document.ready(myfucntion) 
$(window).focus(myfucntion) 
$(window).blur(stop(myfucntion)) 

это возможно, чтобы остановить функцию на смазывание под названием ранее в document.ready

+2

вы используете 'уаг таймер = SetTimeout (функция, 5000)'? если это так, вы можете просто сделать clearTimeout (timer) 'в функции размытия. –

+0

Что такое 'myFunction()' –

+0

Я пробовал это, но не работал, как спасибо @rory McCrossan –

ответ

1

Есть глобальный таймер:

var intervalId; 

И было бы лучше иметь две функции:

startfunction() { 
    intervalId = setTimeout(function() { 
    // send request after 5 seconds 
    }, 5000); 
} 
stopfunction() { 
    clearTimeout(intervalId); 
} 

и использовать их как это:

$(document).ready(startfunction); 
$(document).ready(function() { 
    $(window).focus(startfunction); 
    $(window).blur(stopfunction); 
}); 
0

Вот пример того, как сделать то, что вы хотите работать

var timer; // make it global so it can be accessed inside functions 

var myFunction = function() { 
    timer = setTimeout(function() { 
    //do something after 5 seconds 
    }, 5000); 
} 

var stopMyFunction = function() { 
    clearTimeout(timer); 
} 

$(document).ready(myFunction) 
$(window).focus(myFunction) 
$(window).blur(stopMyFunction)) 
Смежные вопросы