javascript - 如何将代码应用到动态创建的元素

标签 javascript jquery

仅当页面加载时表格已存在于文档中时,以下代码才有效。然而,我希望它应用于动态创建的表。 这可以吗?

 var colNumber=22


for (var i=0; i<colNumber; i++)
{
  var thWidth=$("#tbl").find("th:eq("+i+")").width();
  var tdWidth=$("#tbl").find("td:eq("+i+")").width();      
  if (thWidth<tdWidth)                    
      $("#tbl").find("th:eq("+i+")").width(tdWidth);
  else
      $("#tbl").find("td:eq("+i+")").width(thWidth);           
}  

该表是通过以下方式创建的:

    function loadFile(event){
    alasql('SELECT * FROM FILE(?,{headers:false})',[event],function(data){  
        var keys = [];
        for (var i = 0; i < data.length; i++) {
            for (var categoryid in data[i]) {
                var category = data[i][categoryid];
                keys.push(categoryid);
            }
        }

        keysConverted = keys.map(foo);
        var vMin = Math.min.apply(null, keysConverted);
        var vMax = Math.max.apply(null, keysConverted);
        var start = vMin-1 
        var ColNeeded = vMax - vMin+1;

        var arrExcel2Table = '<table id="tbl">';
        for (var i = 0; i < data.length; i++){
            arrExcel2Table = arrExcel2Table + '<tr>';
                for (var j = 0; j < ColNeeded; j++){
                    cellValue = data[i][number2Letter(j+start)];
                    if (typeof cellValue === "undefined"){
                        cellValue = '';
                    }
                    arrExcel2Table = arrExcel2Table + '<td>' + cellValue + '</td>';
                }
            arrExcel2Table = arrExcel2Table + '</tr>';  
        }
        arrExcel2Table = arrExcel2Table + '</table>';   
        document.getElementById('excel_table').innerHTML = arrExcel2Table;
    }); 
}

最佳答案

创建要运行的函数并从动态元素添加事件。例如

arrExcel2Table = arrExcel2Table + '<td>' + cellValue + '</td>';

可以替换为

arrExcel2Table = arrExcel2Table + '<td onclick="myFunction();">' + cellValue + '</td>';

上面的代码将调用您创建的函数

myFunction() {
   alert();
}

关于javascript - 如何将代码应用到动态创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46950239/

相关文章:

javascript - 动态菜单和 Javascript 滚动

javascript - 使用 Jquery 限制以表单形式克隆的文件输入

jquery - ASP.NET MVC3 : Datetimepicker wont work

javascript - 如果 div 有类删除类并将其添加到其父级

jquery - Uploadify 在 IE 7/8 中导致错误

javascript - 我可以将一组对象放入一个 JSON 对象中吗?

Javascript对象同时显示不同的值

jquery - 使用 jquery 查找 ul li 列表中任何 li block 中最深和最后一个 li?

javascript - 为什么我的 Node 服务器处理请求两次?

javascript - jQuery 代码无法按我想要的方式工作