JQuery动态创建元素和单击事件

时间:2016-07-24 10:47:30

标签: javascript jquery html onclick

使用jquery动态创建链接列表,并希望将分隔的$(PROJECT_DIR)/Carthage/Checkouts事件绑定到每个链接。

click
for (var i = 0; i < 7; i++) {
    var li = $('<div>').addClass('text-primary').css("curser", "pointer").appendTo($("#AK_test"));
    var aleg = $('<a>').addClass('pull-left text-primary').css('color','#337ab7').text(" Clickable link # " + i);

    aleg.on("click", function() {
        alert("clicked # " + i);
    });
    aleg.appendTo(li);
    $('<br>').appendTo(li);
}

在此示例中,警报始终显示7(i的最后一个值)。

我的问题:为什么?对于每个链接,它应该在警报中显示i的单独值。

1 个答案:

答案 0 :(得分:0)

感谢T.J.克劳德,寻找原始解决方案。

以下是此问题中-my问题代码的相同修复 -

  for (var i = 0; i < 7; i++) {
      var li = $('<div>').appendTo($("#AK_test"));
      var aleg = $('<a>').css('color','#337ab7').text(" link # " + i);

      aleg.on("click", createClickEvent(i));
      aleg.appendTo(li);
      $('<br>').appendTo(li);
  }
  function createClickEvent(i) {
      return function() { alert(i); };
  }
  <div id="AK_test"></div>