我需要谨慎运行more ...
函数,因为它每次都会下载一个大图像,所以为了跳过意外的更改,我正在检查值是否有已更改 goTo()
某个时间已过去(2000毫秒)。
and
..这有效,但不跳过它应该进行的更改,它仍然运行scrubber.onValueChanged = function (value) {
var timer;
if (gallery.getCurrentIndex() !== value) {
console.log('value changed');
clearTimeout(timer); console.log('timer reset');
}
timer = setTimeout(function() {
console.log('updating...');
gallery.goTo(value);
}, 2000);
};
函数,用于我从中移动到中间的所有值。
答案 0 :(得分:3)
timer
是一个局部变量。因此,每次调用该函数时,timer
都将被重置,clearTimeout(timer)
无法按预期工作。要在行为范围之外修复该timer
变量,或将其变为全局变量。
var timer;
....
scrubber.onValueChanged = function (value) {
if (gallery.getCurrentIndex() !== value) {
console.log('value changed');
clearTimeout(timer); console.log('timer reset');
timer = setTimeout(function() {
console.log('updating...');
gallery.goTo(value);
}, 2000);
}
};