루프 이전에 이전 값 변수를 설정할 수 있으며 currentHour를 업데이트 할 때마다 previousValue 변수와 일치시킵니다. 동일하지 않으면 변경되지 않으며 변경되지 않으면 콜백을 실행할 수 있습니다.
또 다른 방법은 객체 프로토 타입을 사용하여 currentHour의 값을 변경하는 것입니다.
코드 위
가 changeListner
var HourListner = {
currentHour: null,
update: function(newValue, callback){
if(this.currentHour !== newValue){
this.currentHour = newValue;
callback(newValue);
}
}
}
timer = Object.create(HourListner);
var changeListner = function(value){
//value is the new value of currentHour
console.log(value)
}
for(var i=0; i<listingTime.length; i++){
if (listingTime[i].time >= 0) {
var second = listingTime[i].time/1000;
var currentHour = parseInt(second/3600);
timer.update(currentHour, changeListner)
}
}
를 추가하려면 다음에 수정 될 수 있습니다 그리고 트릭은 다음 코드에서 독립적으로 테스트 할 수 있습니다 :
var HourListner = {
currentHour: null,
update: function(newValue, callback) {
if (this.currentHour !== newValue) {
this.currentHour = newValue;
callback(newValue);
}
}
}
timer = Object.create(HourListner);
var changeListner = function(value) {
//value is the new value of currentHour
console.log(value)
$('body').append('<p>'+value+'</p>')
}
var interval = setInterval(function(){
var t = new Date();
timer.update(t.getMinutes(), changeListner)
}, 200)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
다음 코드는 것을 보여준다
이전 값과의 변경이있을 경우 changeListner
이 실행됩니다.
다른 변수가 필요합니다 ... 'previousHour'라고 부르세요. - 좋은 시작입니까? –
더 많은 코드를 보여줘야합니다. 어디에서 변경을 감지하고 싶습니까? 거기에 var가 없으면 이전 값을 테스트 할 수 있습니다 – mplungjan
확인하십시오 http://stackoverflow.com/questions/1759987/listening-for-variable-changes-in-javascript-or-jquery –