【问题标题】:I need the "if" statement to keep evaluating (JS) [closed]我需要“if”语句来继续评估(JS)[关闭]
【发布时间】:2015-09-07 02:25:57
【问题描述】:

我必须做一些简单的错误。我正在跟踪光标移动的速度。光标已替换为 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 定义在哪里?
  • 我更新了问题。速度计算得非常好。这不是问题,这就是我最初没有发布它的原因。
  • @Chris_topher 不要假设问题中的相关项目完全没问题,显然不是。最初不说明它会使您的问题以“不工作” 结束,而我们无法重现该问题。

标签: javascript jquery loops if-statement setinterval


【解决方案1】:

speed 不是全局变量,不在您的区间范围内。它在该回调的 范围 内,您无法在外部访问它。您的控制台应该有大量错误消息告诉您它没有定义。

$(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);
});

但是为什么要使用间隔?只需将 if/else 语句放在 onUpdateSpeed 回调中即可。

$('#track').cursometer({
    onUpdateSpeed: function(speed) {
        $speedometer.text(speed);
        $('#cursor').css('background-color', speed >= 1 ? 'red' : 'blue');
    },
    updateSpeedRate: 20
});

【讨论】:

  • 我的控制台日志没有给我任何错误。当我在控制台中输入“速度”时,它会给我当前的速度,就像我期望的那样。但我认为我认为这纯粹是一个 JS 问题是错误的。我想我需要看看它是如何在 HTML 中传递信息并从那里返回的。还是谢谢。
  • 根据您提供的内容,speed 不应从控制台获得...除非该库编写得不好并设置了全局变量。你真的尝试过我推荐的吗?
  • 哦,等等等等,我放错东西了。是的,您的代码确实有效。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多