jQuery单击事件功能记住参数

时间:2016-10-13 13:03:34

标签: javascript jquery

下面的Javascript / jQuery代码将输出三个div,数字为1,2和3.但是当点击任何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]); });
}

4 个答案:

答案 0 :(得分:1)

这应解决它:

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);
}

答案 1 :(得分:1)

因此,为避免闭包问题,您可以将绑定包装在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));
}

答案 2 :(得分:0)

试试这个:

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()); 
});

希望它会有用

答案 3 :(得分:0)

select SellerName, count(ProductID) from Seller
    join Smartphone using (SellerID)
    group by SellerName
    order by count(ProductID);

最简单的解决方案:阅读.innerHTML