1
我創建了一個倒計時功能,它只在用戶處於瀏覽器的當前窗口時計數,並且工作得很好,唯一的問題是當我將代碼插入到angularjs控制器中時。它停止工作,上面我留下我的代碼給大家有一個想法是什麼錯誤。倒計時按鈕angularjs
JS:
var span = angular.element('#count');
var counter = 30;
var timer;
var startTimer = function() {
// do nothing if timer is already running
if (timer) return;
timer = setInterval(function() {
counter--;
if (counter >= 0) {
span.innerHTML = counter;
}
// Display 'counter' wherever you want to display it.
if (counter === 0) {
alert('this is where it happens');
stopTimer();
}
}, 1000);
};
var stopTimer = function() {
clearInterval(timer);
timer = null;
};
var onBlur = function() {
stopTimer();
};
var onFocus = function() {
startTimer();
};
var onLoad = function() {
startTimer();
};
angular.element(window).load(onLoad);
angular.element(window).blur(onBlur);
angular.element(window).focus(onFocus);
HTML:
<a class="btn btn-medium btn-orange" href="">
In<span id="count">30</span></a>
不要使用'$ interval',而不是'setInterval',這會照顧消化週期保持同步結合&然後使用'$ interval.cancel(間隔)''來clearInterval',另外'angular.element('#count')'應該是'angular.element(document.getElementById('count'))'as'jQLite' does not support'selector' based query –