在函数editCell()
中,为响应HTML表格单元格的onclick事件而调用,我正在尝试这样做:
var tbl = [valid table ref];
var row = tbl.insertRow(-1); // insert at end.
var newCell = row.insertCell(-1);
newCell.className = "tblItems newItem";
newCell.innerHTML = "  Click to add a property item...";
newCell.onclick = "editCell(this);";
在表格底部创建一个新的1个单元格的行,其中新单元格就好像是用以下内容创建的:
...
<tr>
<td class="tableItems newItem" onclick="editCell(this);">
  Click to add a property item...
</td>
</tr>
...
但是没有引发onclick(或者函数引用没有响应)。
一位同事说要使用:
newCell.onclick = function () {
editIt(this);
}
但似乎“......(this)......”将指代运行的上下文。
在JScript中为新创建的单元格引用添加带参数的函数的正确方法是什么?
必须早在IE 8上工作,但只需要针对IE。
答案 0 :(得分:1)
newCell.addEventListener('click', editCell, false);
或者在较旧的IE版本中:
newCell.attachEvent('onclick', editCell, false);
This解释了为什么使用addEventListener
优于onclick
。
答案 1 :(得分:0)
.setAttribute("onclick","editCell(this);");
答案 2 :(得分:-1)
这将引用newCell。但是,您试图调用错误的函数(editIt而不是editCell)
newCell.onclick = function () {
editCell(this);
}