无法将onclick事件添加到动态创建的按钮

时间:2015-05-25 11:58:20

标签: javascript html

我有一个用于动态创建行项目的脚本。我的问题是创建最后一个单元格项目,一个按钮。我尝试过使用onclick,setAttribute和attachEvent。但是创建按钮或在addGarageRow()函数中启动onclick事件,该函数创建按钮而不是创建按钮本身的onclick事件

  function addGarageRow(tableID)
   {
     var table=document.getElementById(tableID);

     rownum = rownum + 1;
     var rowCount=table.rows.length;
     var row=table.insertRow(rowCount);

     var cell1=row.insertCell(0);
     var element1=document.createElement("input");
     element1.type="checkbox";
     element1.name="chk[]";

     cell1.appendChild(element1);


     var cell2=row.insertCell(1);
     var element2=document.createElement("input");
     element2.type="text";
     element2.id=rownum;
     element2.name="garage_for[]";

     cell2.appendChild(element2);

    var cell3=row.insertCell(2);
    var element3=document.createElement("input");
    element3.type="text";
    element3.id="amount"+rownum;
    element3.name="garage_amount[]";
    cell3.appendChild(element3); 

    var cell4=row.insertCell(3);
    var element4=document.createElement("input");
    element4.setAttribute("type", "button");
    element4.id=rownum;
    //element4.name="voucher";
    //element4.onclick = alert("test");
    //element4.setAttribute("onClick", alert("test");
    //element4.attachEvent('OnClick',Hi());
    cell4.appendChild(element4);

 }

2 个答案:

答案 0 :(得分:3)

处理程序应该包含在一个函数中。即:

element4.onclick = function(){
   alert("test");
}

答案 1 :(得分:2)

onclick块内function事件触发时,您必须包装要执行的函数。请在此处查看:http://jsfiddle.net/qbhfdkq3/