javascript - JavaScript 如何评估参数?

标签 javascript jquery

我编写了一个简单的 JavaScript 函数来在 JQuery ProgressBar( check here ) 的帮助下显示进度条。

progressBar函数可以设置显示不同值的不同背景图片。我想将 [0, MAX0.3] 中的值显示为红色,(MAX0.3, MAX0.7] 中的值显示为橙色,(MAX0.7, MAX] 中的值显示为绿色。所以我编写了一个辅助函数,如下所示:

function setBar(bar, cur, total) {
    var v1 = parseInt(total * 0.3);
    var v2 = parseInt(total * 0.7);

    // if I run alert(v1) and alert(v2) here, the values are all right.

    bar.progressBar(cur, {
        max: total,
        textFormat: 'fraction',
        boxImage: '/img/pbar/progressbar.gif',
        barImage: {
            0:  '/img/pbar/progressbg_red.gif',
            v1: '/img/pbar/progressbg_orange.gif',
            v2: '/img/pbar/progressbg_green.gif'
        }
    });
}

参数cur是当前值,而total是进度条的最大值。该函数似乎不起作用,但当我用 50 和 120 等实际值替换“v1:”和“v2:”时,该函数运行良好。而且在调用bar.progressBar之前我还检查了v1和v2的值,它们都没有问题。

所以问题似乎是我无法将变量而不是常量传递给函数 bar.progressBar,我认为这可能与 javascript 参数求值顺序有关,这个问题有解决办法吗?

最佳答案

在传递对象之前尝试构建它:

var barImageObj = {};
barImageObj[0] = '/img/pbar/progressbg_red.gif';
barImageObj[v1] = '/img/pbar/progressbg_orange.gif';
barImageObj[v2] = '/img/pbar/progressbg_green.gif';

bar.progressBar(cur, {
    max: total,
    textFormat: 'fraction',
    boxImage: '/img/pbar/progressbar.gif',
    barImage: barImageObj
});

问题是 javascript 将 {a:'foo'}{'a':'foo'} 解释为带有字符串键“a”的对象,而不是变量 a 的值恰好是

关于javascript - JavaScript 如何评估参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1115596/

相关文章:

javascript - 如何从 .php 脚本增加 javascript 变量

Javascript 用另一种样式替换一种样式

html - 使用 jQuery 删除 html 表中的空列

javascript - JQuery Chosen 防止自动垂直滚动

javascript - Jquery 向上滑动问题

javascript - Ko Loadingwhen spinner Pointer 事件。

javascript - React 与 Node 从 res.status.json() 获取 json 数据

javascript - 删除具有相同链接的折线

javascript - 数据表日期时间插件不起作用

jquery - 如何使用 jQuery 找到与类最近的前一个 sibling ?