【问题标题】:Call one set of JS code instead of another调用一组 JS 代码而不是另一组
【发布时间】:2022-01-03 05:46:55
【问题描述】:

我有一个 RF 到 L 波段的计算器/转换器,我正在为我的 FT 工作进行设计和开发。现在 C 波段很容易,因为我们只使用一个频率范围。 KU 波段我们有 2 个频率范围。所以对于那个计算器,我想使用单选按钮。当工程师检查无线电 1 时,他们使用为该频率范围编码的功能,如果他们检查无线电 2,他们使用为该频率范围编码的功能。

当收音机被 .checked 时,我该怎么做才能调用它?

我应该创建一个变量数组来分配函数吗?我对JS很陌生。因此,如果我不清楚,请告诉我。 TIA。

【问题讨论】:

  • 将每个计算器作为一个函数来处理数据。if(button.checked){calculatorFunction_1(your_data)} else{calculatorFunction_2(your_data)} 代码在哪里?有什么错误?
  • 我还没有走到那一步。在尝试之前,我正在询问一些方向。如果我让它工作或不工作,我会填写代码。

标签: javascript arrays if-statement radio-button


【解决方案1】:

NVM。我想我找到了解决办法。

我将使用“如果 a 是检查 var b = freqOne 否则 b = freqTwo”。

【讨论】:

  • 也可以,但是如果你把函数名和单选值匹配,那么你的解决方案会更容易维护也更优雅,请看我的回答。
  • 您可以将此作为评论仅留给 OP,因为您也不确定它是否有效
【解决方案2】:

您可以将函数名称与单选按钮值匹配

function foo() {
    console.log("foo was called");
}

function bar() {
    console.log("bar was called");
}

function loremipsum() {
    console.log("loremipsum was called")
}

function test(item) {
    window[item.value]();
}
<label>Foo <input type="radio" name="something" value="foo" onclick="test(this)"></label>
<label>Bar <input type="radio" name="something" value="bar" onclick="test(this)"></label>
<label>Lorem <input type="radio" name="something" value="loremipsum" onclick="test(this)"></label>

【讨论】:

  • 好的。我需要澄清一下:每个计算器内部已经有 3 个函数: 上行链路函数 下行链路函数 下行链路到上行链路 L 波段函数 所以单选按钮会告诉页面使用这组函数,而不是那组函数。这就是为什么我将用布尔值更改频率的值。除了输入是一个范围之外,它的所有静态公式。
  • @CurtisRosler 你能用代码编辑你的问题,以便我调查吗?我真的相信我们正在解决同样的问题。但是 if-else 块不是很容易维护,尤其是当值随时间变化时。
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 2018-01-08
  • 2021-12-24
相关资源
最近更新 更多