由于事件侦听器,我的变量不是全局变量。我需要它们是全球化的

我想为我的贝宝智能按钮做一个小计算。用户将填写两个输入字段中的金额,然后它将计算总数,然后使用此总数作为将用于通过我的Paypal智能按钮购买的价值。

我有这段代码,这是我的基本草稿:

var payamount1 = document.getElementById("amount1").value;
var payamount2 = document.getElementById("amount2").value;
var paytotal = +payamount1) + +payamount2);
document.getElementById("payment-due").textContent = paytotal;

但我必须添加一个eventlistener,以便始终可以从输入字段中获取更新值。添加eventlistener后,我的代码现在如下所示:

document.getElementById('amount1').addEventListener('change', calc);
document.getElementById('amount2').addEventListener('change', calc);

function calc() {
  var payamount1 = document.getElementById("amount1").value;
  var payamount2 = document.getElementById("amount2").value;
  var paytotal = +payamount1 + +payamount2;
  document.getElementById("payment-due").textContent = paytotal;
}

问题是现在我所有的变量都不再是全局变量了。现在我不能在我的paypal按钮代码中使用它们。我的javascript知识有限。我该如何解决这个问题?

我希望能够在以下代码中使用我的变量。例如,看看我在下面的paypal按钮代码中使用"paytotal“变量的位置:(但由于eventlistener,我的变量不再是全局的)

paypal.Buttons({
    createOrder: function(data, actions) {
      // This function sets up the details of the transaction, including the amount and line item details.
      return actions.order.create({
        purchase_units: [{
          amount: {
            value: paytotal
          }
        }]
      });
    }
  }).render('#paypal-button-container');

转载请注明出处:http://www.ahddzj.com/article/20230526/997186.html