Javascript 是否可以向元素动态添加事件

Javascript 是否可以向元素动态添加事件,javascript,jquery,edmx,Javascript,Jquery,Edmx,我有一个EDM模型,我正在尝试为它生成一个动态UI,但它无法将事件添加到多个select中 换句话说,它只适用于1个select,而不适用于更多 function addEvents(id) { $('body').on('click', '#entities_' + id, function(event) { var $e = $(event.target); var entityIndex = $("#ent

我有一个EDM模型,我正在尝试为它生成一个动态UI,但它无法将事件添加到多个select中

换句话说,它只适用于1个select,而不适用于更多

        function addEvents(id) {
          $('body').on('click', '#entities_' + id, function(event) {
            var $e = $(event.target);
            var entityIndex = $("#entities_" + id + " option:selected").index(); //$e.val();
            var entity = entities[entityIndex - 1];
            var columns = entity.property; // if index is not -1


            var $entities_cols = $("#entities_" + id + "_cols").empty();
            $.each(columns, function(index, e) {
              var selectColumnHtmlId = 'selectcolumn_' + e.name;
              var $selectColumnLabel = $('<label />', {
                'for': selectColumnHtmlId,
                text: e.name
              });
              $selectColumnLabel.appendTo($entities_cols);
              $('<input />', {
                type: 'checkbox',
                id: selectColumnHtmlId,
                value: e.name
              }).prependTo($selectColumnLabel);
            });

            if (id <= config.expandLimit)
              addExpand(++id, entity.navigationProperty);
          });
        }
功能添加事件(id){
$('body')。在('click','entities'+id,函数(事件)上{
var$e=$(event.target);
var entityIndex=$(“#实体"+id+”选项:选中”).index();/$e.val();
var实体=实体[entityIndex-1];
var columns=entity.property;//如果索引不是-1
var$entities_cols=$(“#entities_”+id+“_cols”).empty();
$。每个(列,函数(索引,e){
var-selectColumnHtmlId='selectcolumn_u'+e.name;
变量$selectColumnLabel=$(“”{
“for”:选择ColumnHtmlid,
文本:e.name
});
$selectColumnLabel.appendTo($entities\u cols);
$('', {
键入:“复选框”,
id:selectColumnHtmlId,
值:e.name
}).prependTo($selectColumnLabel);
});

如果(id通过更改此选项使其工作

  function addEvents(id) {
          var $entities = $('#entities_' + id);
          $('body').on('click', $entities, function(event) {
            var $e = $(event.target);
            var entityIndex = $("#entities_" + id + " option:selected").index(); //$e.val();
            var entity = entities[entityIndex - 1];
            var columns = entity.property; // if index is not -1


            var $entities_cols = $("#entities_" + id + "_cols").empty();
            $.each(columns, function(index, e) {
              var selectColumnHtmlId = 'selectcolumn_' + e.name;
              var $selectColumnLabel = $('<label />', {
                'for': selectColumnHtmlId,
                text: e.name
              });
              $selectColumnLabel.appendTo($entities_cols);
              $('<input />', {
                type: 'checkbox',
                id: selectColumnHtmlId,
                value: e.name
              }).prependTo($selectColumnLabel);
            });

            if (id <= config.expandLimit)
              addExpand(++id, entity.navigationProperty);
          });
        }
功能添加事件(id){
变量$entities=$('#entities'+id);
$('body')。在('click')上,$实体,函数(事件){
var$e=$(event.target);
var entityIndex=$(“#实体"+id+”选项:选中”).index();/$e.val();
var实体=实体[entityIndex-1];
var columns=entity.property;//如果索引不是-1
var$entities_cols=$(“#entities_”+id+“_cols”).empty();
$。每个(列,函数(索引,e){
var-selectColumnHtmlId='selectcolumn_u'+e.name;
变量$selectColumnLabel=$(“”{
“for”:选择ColumnHtmlid,
文本:e.name
});
$selectColumnLabel.appendTo($entities\u cols);
$('', {
键入:“复选框”,
id:selectColumnHtmlId,
值:e.name
}).prependTo($selectColumnLabel);
});
如果(id)