在里面点击for循环

时间:2016-11-15 15:29:37

标签: javascript jquery

我不知道为什么会这样,我循环遍历一个数字(Object.size(分页)),并为每个数字设置一个onclick事件。单击其中一个按钮后,它会回显最后一个可用的页码,而不是我单击的页码。

for (var i = 1; i < (Object.size(window.pagination) + 1); i++) {
  $("#supportTicket_pageNumber").append("<li class=\"\"><a style=\"cursor: pointer;\" class=\"supportTicket_pageNumber_" + i + "\">" + i + "</a></li>");
  $(".supportTicket_pageNumber_" + i + "").click(function() {
    console.log("Page number: " + i);
  });
}

带有数字的类也可以很好地插入,https://gyazo.com/92c556117bbd42bb7a16e7832b60af39

1 个答案:

答案 0 :(得分:0)

似乎你需要创建一个闭包。

将其包裹在IIFE中

 for (var i = 1; i < (Object.size(window.pagination) + 1); i++) {
   (function(x) {  // closure start here
     $("#supportTicket_pageNumber").append("<li class=\"\"><a style=\"cursor: pointer;\" class=\"supportTicket_pageNumber_" + x + "\">" + x + "</a></li>");
  $(".supportTicket_pageNumber_" + x + "").click(function() {
    console.log("Page number: " + x);
    });
   }(i)) // end here, passing the context of i
}