【问题标题】:Javascript function runs the first time but won't againJavascript函数第一次运行但不会再次运行
【发布时间】:2016-01-28 03:46:15
【问题描述】:

在这之后,还有另一个函数可以监听 HTML 下拉列表的变化。当发生变化时,JavaScript 会调用成本函数并放入新变量,这应该重新计算成本。

但是,在第一次运行后,代码将不会再次运行。我知道这一点是因为“我正在运行”警报仅在第一次调用该函数时出现。

知道我忽略了什么吗?

function costs(f, p) {
        window.alert("I AM RUNNING");
        costs = [10500, 33950, 33950, 22576, 22576, 22576, 39324, 39324, 39324, 39324, 39324, 0];
        models = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "\u00a0"];
        ind = models.indexOf(f);
        a = ((p/100)*costs[ind]).toFixed(2);
        b = a.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
        c = "$"+b;
        return c;
    };

谢谢!

【问题讨论】:

  • 你能在你的问题中发布一个完整的代码示例吗?
  • 检查开发者工具日志(大多数浏览器按F12),看看函数是否有错误。

标签: javascript function


【解决方案1】:

您正在函数中重新定义 costs 行:

costs = [10500, 33950, 33950, 22576, 22576, 22576, 39324, 39324, 39324, 39324, 39324, 0];

给它一个不同的变量名。

【讨论】:

  • 只是更改名称只会隐藏错误。他应该声明内部变量,而不是使用隐式全局变量。
  • 谢谢,很沮丧,我忽略了这么愚蠢的错误
猜你喜欢
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2015-07-14
相关资源
最近更新 更多