繁体   English   中英

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

[英]Can I create multiple onclick events dynamically?

由于某种原因,我无法重新启用按钮并使用相同的按钮浏览表中的所有列。 我可以为该按钮创建多个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;

}

是的,请使用addEventListener

代替target.onclick=clickHandlerFunction; ,请使用target.addEventListener('click',clickHandlerFunction);'

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

注意:使用旧的Internet Explorer添加事件的语法是不同的( target.attachEvent('onclick',handler) )。 如果你需要用旧的浏览器的兼容性,可以使用两种语法,使用jQuery的click或者on功能或gator.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM