首页 > 解决方案 > 需要使用 event.currentTarget 进行 Javascript 计算方面的帮助

问题描述

当我尝试测试这个计算脚本时,我不断得到 Infinity。这是我第一次尝试不使用表单元素。我试过四舍五入到小数点后两位,但我担心问题在于我如何引用按钮 ID。同样,这是我第一次使用这种方法而不是表单/提交,我真的需要帮助找出我做错了什么。看来我没有正确获得当前目标的 id。

scene.clickHandler = function(event) {
  var button = event.currentTarget;
  var termId = event.currentTarget.id;
  var carCost = 26899;
  var myPmt = carCost / termId;
  document.getElementById('payment').innerHTML = (26899 / event.currentTarget.id);
  if (this.currentButton && this.currentButton !== button) {
    this.currentButton.classList.remove('selected');
  }
  button.classList.add('selected');
};
<header>
  <h2>AUTOMOTIVE RETAIL BASICS</h2>
  <h1>MONTHLY PAYMENT</h1>
</header>

<main>
  <img src="images/1000/1000.jpg">


  <div class="text">
    <h1>WHAT'S MY MONTHLY PAYMENT?</h1>

    <p id='cost' value='26899'>Vehicle base Price:$26,899</p>

    <p>
      <button id='36' class='text' value='36' type='submit'><label>36 MOS</label></button>
      <button id='48' class='text' type='submit' value='48'><label>48 MOS</label></button>
      <button id='60' class='text' type='submit' value='60'><label>60 MOS</label></button></p>

    <p>Monthly Payment:
      <div id='payment'></div>
    </p>

  </div>

</main>

标签: javascript

解决方案


为什么currentTarget在这里使用?为什么不target呢?currentTarget是您将侦听器附加到的元素,但target它是触发它的元素。因此event.currentTarget.id;将评估null或评估""没有 id 的目标。并除以null""生成Infinity。只需使用target而不是currentTarget.


推荐阅读