繁体   English   中英

在JScript中添加事件处理程序

[英]Add Event Handler in 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不会被提高(或者函数ref不会响应)。

一位同事说要使用:

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

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

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

必须工作到IE 8,但只需要定位IE。

newCell.addEventListener('click', editCell, false);

或在较旧的IE版本中:

newCell.attachEvent('onclick', editCell, false);

解释了为什么使用addEventListener优于onclick

.setAttribute("onclick","editCell(this);");

这将引用newCell。 但是,您正在尝试调用错误的函数(editIt而不是editCell)

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

暂无
暂无

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

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