在JScript中添加事件处理程序

时间:2014-03-13 15:14:52

标签: javascript html jscript

在函数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);"> 
            &#160;&#160;Click to add a property item...
        </td>
    </tr>
    ...

但是没有引发onclick(或者函数引用没有响应)。

一位同事说要使用:

    newCell.onclick = function () {
        editIt(this);
    }

但似乎“......(this)......”将指代运行的上下文。

在JScript中为新创建的单元格引用添加带参数的函数的正确方法是什么?

必须早在IE 8上工作,但只需要针对IE。

3 个答案:

答案 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);
}