jQuery点击事件函数记住参数

jQuery click event function remembering the parameter

本文关键字:参数 函数 事件 jQuery      更新时间:2023-09-26

下面的Javascript/jQuery代码将输出三个数字分别为1、2和3的div。然而,当点击任何一个div时,它总是会提醒数字3。

我该如何写才能提醒"正确"的号码不将数字放入HTML本身

var values = [1, 2, 3];
for (var i in values) {
    var element = $("<div>" + values[i] + "</div>");
  $("body").append(element);
  element.click(function() { alert(values[i]); });
}

这应该可以解决问题:

var values = [1, 2, 3];
function clickHandler(event) {
  alert(event.target.innerHTML);
}
for (var i in values) {
    var element = $("<div>" + values[i] + "</div>");
  $("body").append(element);
  element.click(clickHandler);
}

因此,为了避免闭包问题,您可以将绑定封装在IIFE:中

var values = [1, 2, 3];
for (var i in values) {
  var element = $("<div>" + values[i] + "</div>");
  $("body").append(element);
  (function(i) { // 'i' is local to anonymous function block
    element.click(function() {
      alert(values[i]);
    });
  }(i));
}

试试这个:

var values = [1, 2, 3];
for (var i in values) {
  var element = $("<div>" + values[i] + "</div>");
  $("body").append(element);

}

$("div").click(function() { 
   alert($(this).text()); 
});

希望它对有用

var values = [1, 2, 3];
for (var i in values) {
    var element = $("<div>" + values[i] + "</div>");
  $("body").append(element);
  element.click(function() { alert(this.innerHTML); });
}

最简单的解决方案:Read.innerHTML