Javascript parseInt - 代码 运行 4 次

Javascript parseInt - Code running 4 times

对于此函数,我正在尝试计算 $r 变量的结果并将它们显示在表单输入文本字段中,"otherHtmlIdName"。

if 语句检查它们是否都有值,然后获取计算变量的值并更改输入字段。效果很好,问题是它连续工作 4 次,每个 parseInt().

一次

有什么方法可以只运行一次吗?我也试过 parseFloatNumber。没有帮助。

[编辑]:这不是因为 parseInt 而发生的。我在我的代码中调用了这个 ID 上的点击函数 4 次。

$("#htmlIdName").click(function () {
    var variableName = parseInt($r.ab3, 10) - parseInt($r.ab4, 10) + parseInt($r.sb3, 10) + parseInt($r.sb4, 10);
    if ($r.ab3 && $r.ab4 && $r.sb3 && $r.sb4) {
        $("#otherHtmlIdName").val(variableName);
        $("#otherHtmlIdName").change();
    };
});

如果您询问如何防止调用 parseInt() 4 次,您可以像这样使用 map 函数:

$("#htmlIdName").click(function() {
  //convert object of strings to array of ints
  var arr = $.map($r, function(el) {
    return +el
  });

  //perform same calculations as before
  var variableName = arr[0] - arr[1] + arr[2] + arr[3];

  if ($r.ab3 && $r.ab4 && $r.sb3 && $r.sb4) {
    $("#otherHtmlIdName").val(variableName);
    $("#otherHtmlIdName").change();
  };
});

工作示例:

http://codepen.io/anon/pen/xZExeM

尝试:

$("#htmlIdName").off().on('click', function() {
    /* Your code here */
});