我需要 "if" 语句来继续计算 (JS)
I need the "if" statement to keep evaluating (JS)
我一定是犯了一些简单的错误。我正在跟踪光标移动的速度。光标已替换为 50px x 50px 的正方形。如果速度大于或等于 1.00,则光标方块应为红色。如果速度较慢,它应该是蓝色的。问题是,当我加载页面时,光标是蓝色的,无论我移动多快都不会变成红色。
为了计算速度,我使用 this code
并使用以下代码调用它:
$(function() {
var $speedometer = $('#speed');
$('#track').cursometer({
onUpdateSpeed: function(speed) {
$speedometer.text(speed);
},
updateSpeedRate: 20
});
setInterval(function () {
if (speed >= 1.00) {
$('#cursor').css('background', 'red');
} else {
$('#cursor').css('background', 'blue');
}
}, 20);
});
speed
不是全局变量,不在您的间隔范围内。它在那个回调的 scope 中,你不能在外面访问它。您的控制台应该有大量错误消息告诉您它未定义。
$(function() {
var $speedometer = $('#speed'),
_speed = 0;
$('#track').cursometer({
onUpdateSpeed: function(speed) {
_speed = speed;
$speedometer.text(speed);
},
updateSpeedRate: 20
});
setInterval(function () {
if (_speed >= 1.00) {
$('#cursor').css('background', 'red');
} else {
$('#cursor').css('background', 'blue');
}
}, 20);
});
BUT 为什么要使用间隔?只需将 if/else 语句放在 onUpdateSpeed
回调中。
$('#track').cursometer({
onUpdateSpeed: function(speed) {
$speedometer.text(speed);
$('#cursor').css('background-color', speed >= 1 ? 'red' : 'blue');
},
updateSpeedRate: 20
});
我一定是犯了一些简单的错误。我正在跟踪光标移动的速度。光标已替换为 50px x 50px 的正方形。如果速度大于或等于 1.00,则光标方块应为红色。如果速度较慢,它应该是蓝色的。问题是,当我加载页面时,光标是蓝色的,无论我移动多快都不会变成红色。
为了计算速度,我使用 this code
并使用以下代码调用它:
$(function() {
var $speedometer = $('#speed');
$('#track').cursometer({
onUpdateSpeed: function(speed) {
$speedometer.text(speed);
},
updateSpeedRate: 20
});
setInterval(function () {
if (speed >= 1.00) {
$('#cursor').css('background', 'red');
} else {
$('#cursor').css('background', 'blue');
}
}, 20);
});
speed
不是全局变量,不在您的间隔范围内。它在那个回调的 scope 中,你不能在外面访问它。您的控制台应该有大量错误消息告诉您它未定义。
$(function() {
var $speedometer = $('#speed'),
_speed = 0;
$('#track').cursometer({
onUpdateSpeed: function(speed) {
_speed = speed;
$speedometer.text(speed);
},
updateSpeedRate: 20
});
setInterval(function () {
if (_speed >= 1.00) {
$('#cursor').css('background', 'red');
} else {
$('#cursor').css('background', 'blue');
}
}, 20);
});
BUT 为什么要使用间隔?只需将 if/else 语句放在 onUpdateSpeed
回调中。
$('#track').cursometer({
onUpdateSpeed: function(speed) {
$speedometer.text(speed);
$('#cursor').css('background-color', speed >= 1 ? 'red' : 'blue');
},
updateSpeedRate: 20
});