使用 jQuery 的 prop() 来点击复选框并不是 运行 在复选框上设置的 onClick() 函数

Using jQuery's prop() to click on a checkbox isn't running the onClick() function set on the checkbox

我有两个复选框,它们分配了一个 onclick() 函数。现在在一个按钮中,我设置了 jquery 以便通过 prop()

自动选中复选框

按下按钮时,会选中复选框,但 onclick() 函数不起作用。我如何让它发挥作用?有什么想法吗?

html:

    <div class="container">
        <h2 class="mt-5">Tester</h2>
        <form>
            <div class="form-group row align-items-center">
            <div class="col-3">
                <label for="policyinInt">Int</label>
                <input class="form-control" value="0" readonly="readonly" type="text" name="total" />
            </div>
            <div class="col-3">
                <label for="policyinHex">Hex</label>
                <input class="form-control" value="0" readonly="readonly" type="text" name="totalhex" id="policyinHex" />
            </div>
            </div>
        </form>
        <input class="form-check-input" name="values" value="256" type="checkbox" onclick="totalIt()" id="bit8" /> <span class="code">0x00000100</span><br>
        <input class="form-check-input" name="values" value="512" type="checkbox" onclick="totalIt()" id="bit9" /> <span class="code">0x00000200</span> <br>
    <button type="button" class="default btn btn-outline-primary">Check the boxes</button>
    <br>
    </div>

javascript:

function totalIt() {
    var input = document.getElementsByName("values");
    var total = 0;
    for (var i = 0; i < input.length; i++) {
      if (input[i].checked) {
        total += parseInt(input[i].value);
      }
    }
    document.getElementsByName("total")[0].value = total;
    document.getElementsByName("totalhex")[0].value = decimalToHexString(total);
  }


  function decimalToHexString(number)
  {
    number = number.toString(16).toUpperCase()
    number = "0x"+number;
    return number;
  }

$(document).ready(function(){
    $(".default").click(function(){
        $("#bit8").prop("checked", true);
        $("#bit9").prop("checked", true);
    });
});

jsfiddle 目前我所拥有的:https://jsfiddle.net/fahims/7eyf5v86/

因此,当手动选中复选框时,该功能有效。但是当按钮用于触发复选框时,这些功能不起作用。有没有更好的方法来实现我想要实现的目标?

设置选中的属性后,只需调用 totalIt()。以编程方式设置属性或值不会触发用户事件

$(".default").click(function(){
    $("#bit8, #bit9").prop("checked", true);
    totalIt();
});