-2
我有這段代碼,當我點擊「添加」時,它將一個新人添加到數組中。然後,當我點擊'click'時,它應該改變數組中該人的屬性,並在setInterval()定時器中使用這些新屬性(特別是'interval'),即'person.hours'。如何使用其容器中的屬性停止並重新啓動setInterval()
我希望這樣做,因爲我需要爲每個「個人」單獨執行此操作。
我需要添加代碼的主線如下。
//restart interval here with new interval
//so re-run personArray[0].hours with the new personArray[0].interval
但我不能確定如何重新啓動與更新的屬性對象的時間間隔。
var personArray = [];
function person(name, age, workhours, interval) {
this.name = name;
this.age = age;
this.workhours = workhours;
this.interval = interval;
this.hours = setInterval(function() {
console.log('hello')
}, interval);
}
person.prototype.update = function() {
clearInterval(this.hours);
this.hours = setInterval(function() {
console.log('newhello');
//i want to log the persons name here
console.log(this.name)
}, this.interval);
}
$('#add').click(function() {
personArray.push(new person('fred', 15, 20, 500))
});
$('#click').click(function() {
console.log(personArray[0]);
clearInterval(personArray[0].hours);
personArray[0].interval = 100;
personArray[0].update();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='add'>
add
</button>
<button id='click'>
click me
</button>
這裏也是一個小提琴:http://jsfiddle.net/reko91/nVyXS/1726/
可能使事情變得更容易考出來的,在此先感謝:)
這完美的作品。然而,我錯過了我的代碼的一個重要部分,因爲這是我正在工作的簡化版本。我已經設法解決了這個問題,但最初我要求的是,你解決了,謝謝 – thatOneGuy