Я хотел передать динамические параметры в функцию setInterval (см. вопрос здесь) и особенно комментарий @tvanfosson.
Но теперь я также хочу отключить этот таймер, если выполняется определенное условие. Я попытался определить переменную таймера как глобальную переменную, но я все равно получаю таймер как undefined
в этой строке:
console.log('else. timer=' + timer);
:
еще. Таймер = undefined
<script language="javascript" type="text/javascript">
var timer;
var params={};
params.color='light';
$(document).ready(function () {
timer=createInterval(showSmallWidget, params.color, 500);
});
function createInterval(f, dynamicParameter, interval) {
setInterval(function () {
f(dynamicParameter);
}, interval);
}
function showSmallWidget(color) {
if ($('#widget').html() == '') {
//do stuff
}
else {
console.log('else. timer=' + timer);
if (timer) { console.log('CLEAR TIMER'); timer.clearInterval(); timer = null; }
}
}
</script>
Я попытался создать JSFiddle, но я не могу заставить его работать правильно: https://jsfiddle.net/puhw3z2k/