小编B4T*_*C4T的帖子

了解函数如何使用和存储变量

我很抱歉,这已在其他地方被问过/回答过。我可能不知道找到所需结果的正确术语。

我正在构建一种 Web 应用程序,在一个区域中,用户单击按钮,从按钮 ID 末尾的数字获取变量,然后将其传递给其他函数以用于进一步处理。我遇到的问题是,随后每次单击类似的按钮时,先前单击的变量仍然存储在这些函数中。

JavaScript 不是我的强项,所以我构建了一个小小提琴,以更小的规模演示我的问题。如果您单击小提琴中的“Submit 1”,然后单击 ALERT CUST_NUM,警报框将显示变量的值。但是,如果您使用“提交 1”或“提交 2”重复该过程(然后再次单击“警报”按钮),则不会警报变量的单个实例,而是会依次显示多个警报框。依此类推,如果您单击“提交 1”,然后单击“警报 CUST_NUM”,然后单击“提交 2”,等等,这样它将在一系列窗口中提醒变量链。我希望有人能解释为什么会发生这种情况,因为我预计函数中只存在一个变量实例,每次都会被覆盖。

$(".submit-btn1").click(function() {
  var cust_num = parseInt(this.id.replace('test-button-', ''), 10);
  testFunction(cust_num);
})
$(".submit-btn2").click(function() {
  var cust_num = parseInt(this.id.replace('test-button-', ''), 10);
  testFunction(cust_num);
})

function testFunction(cust_num) {
  $("#alert-btn").click(function() {
    alert(cust_num);
  })
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="submit-btn1" id="test-button-1">
Submit 1
</button>
<br/>
<button class="submit-btn2" id="test-button-2">
Submit 2
</button>
<br/>
<button id="alert-btn">
ALERT CUST_NUM
</button>
Run Code Online (Sandbox Code Playgroud)

javascript variables jquery function

3
推荐指数
1
解决办法
92
查看次数

标签 统计

function ×1

javascript ×1

jquery ×1

variables ×1