javascript - 在循环 "auto"内添加 jQuery 点击事件点击所有事件

标签 javascript jquery asp.net ajax

我有一个 jQuery 函数,它在 ASP.Net 中执行简单的 Ajax GET,并使用它返回的数据(Json 数组)填充网页。

我正在尝试将点击事件绑定(bind)到使用下面的 lopp 创建的每个 div,但是当它运行时,所有点击事件都会在页面加载时同时发生!

有什么想法吗?

function grabList() {
    $('#temp').empty();

    $.ajax({
        url: '/Home/GoModel',
        method: 'GET',
        success: function (data) {             
            for (var i = 0; i < data.length; i++) {
                $('#temp').append('<div class="host col-sm-3"> id=' + data[i].name + '>' + data[i].name + '</div>');

                if (data[i].hostConnected === true) {
                    $('#temp').append('<div class="host connected col-sm-3" id=' + data[i].name + '>' + data[i].name + '</div>');
                    continue;
                }

                $('#' + data[i].name).on('click', connect(data[i].name)); // Problem occurs
            }
            $('#container').html($('#temp').html());
        }
    });
}

最佳答案

你可以试试:

function grabList() {
  $('#temp').empty();

  $.ajax({
    url: 'https://api.github.com/repositories?since=700',
    method: 'GET',
    success: function (data) {
      for (var i = 0; i < data.length; i++) {
        $('#temp').append('<div class="host col-sm-3" id=' + data[i].name + '>' + data[i].name + '</div>');

        if (data[i].hostConnected === true) {
          $('#temp').append('<div class="host connected col-sm-3" id=' + data[i].name + '>' + data[i].name + '</div>');
          continue;
        }

        (function (ele) {
          $('#' + ele).on('click', function (e) {
            alert(ele);
          });
        })(data[i].name);
      }
      $('#container').html($('#temp').html());
    }
  });
}

$(function () {
  grabList();
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-1.12.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>


<div id="temp"></div>
<div id="container"></div>

关于javascript - 在循环 "auto"内添加 jQuery 点击事件点击所有事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38772479/

相关文章:

javascript - ES6 中的 block 作用域

javascript - 为什么我添加的事件监听器只适用于通过 Id 而不是通过类获取的元素?

javascript - 应该触发哪个事件,以便在选中单选按钮时发生某些事情?

javascript - ASP.NET MVC 表单 : Can submit with ENTER key but not Submit button

如果使用 float CSS 属性,JQueryUI Accordion 不会调整大小

asp.net - .net 能否知道客户端是否支持 HTTP 上的 SNI?

javascript - 相同的 RegExp 交替返回 true 和 false。为什么?

javascript - jquery 可排序 ('toArray' ) 仅当元素属于另一个数组时

c# - Azure Web 应用程序实例

asp.net - ASP.Net/C#,在页面上的某些控件之间循环?