我可以动态创建多个onclick事件吗?

时间:2015-01-16 03:59:08

标签: javascript

出于某种原因,我无法重新启用按钮并使用相同的按钮浏览表中的所有列。我可以为按钮创建多个onclick事件吗? HTML本身实际上只是表格中的一个按钮。

   function focaccia(x){
     var table = document.getElementById("orderTable");
      var row = table.insertRow(0);

      var rem = document.createElement("button");
      var name = document.createTextNode("Remove");
      rem.appendChild(name);

      rem.onclick = function(){
        x.disabled = false;
        document.getElementById("orderTable").deleteRow(this);
        var table = document.getElementById("orderTable");
        var amount = 0;
        var tot;
        for(var x = 0; x < table.rows.length; x++){
         amount = amount + parseInt(table.rows[x].cells[1].children[0].value);
        }
        tot = amount * 9;
        document.getTotal.total.value = tot;
      }

      var num = document.createElement("input");
      num.size = 2;

      num.onchange = function(){

        var table = document.getElementById("orderTable");
        var amount = 0;
        var tot;
        for(var x = 0; x < table.rows.length; x++){
         amount = amount + parseInt(table.rows[x].cells[1].children[0].value);
        }
        tot = amount * 9;
        document.getTotal.total.value = tot;
      }

        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);

        cell1.innerHTML = "Focaccia";
        cell2.appendChild(num);
        cell3.appendChild(rem);
        x.disabled = true;
        num.value = 1;
        total = total + 9;
        document.getTotal.total.value = total;

}

1 个答案:

答案 0 :(得分:1)

是的,请使用addEventListener

使用target.addEventListener('click',clickHandlerFunction);而不是target.onclick=clickHandlerFunction;;'

https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener

注意:使用旧版Internet Explorer添加事件的语法不同(target.attachEvent('onclick',handler))。如果您需要与旧浏览器兼容,则可以使用这两种语法,使用jQuery的clickon函数或gator.js