所以在下面的代码中我让javascript写表的contense但由于某种原因,由于以这种方式生成的表体,onchange函数将不会被调用?不知道为什么或任何解决方案来解决这个问题。
var table = document.getElementById("tableOfTitles");
table.innerHTML = "<tr id='addrow'><td colspan='3'><input type='button' value='+' onclick='addRow()'/><select id='rowType' onchange='addRowDropDownChanged()'>";
网页的所有代码 - http://pastebin.com/ywvFywdz
答案 0 :(得分:0)
尝试使用此代替内联javascript:
$("#tableOfTitles").on("change", "tr select", function(e) {
addRowDropDownChanged();
// Do other stuff here...
});
这会向#tableOfTitles
添加一个事件处理程序,当javascript代码被执行时(页面加载时)已经存在。每当其中的tr select
元素发生更改时,就会触发该事件。
事件处理程序只能注册一次。因此,如果您将一个事件处理程序添加到一个尚未存在的元素(或之后添加一个处理程序),那么该事件处理程序将不会被触发。您可以通过简单地将此事件添加到已存在的父元素(在您的情况下是#tableOfTitles
)来避免这种情况。