0

我需要让这段代码在 Internet Explorer 8 中工作:

http://jsfiddle.net/tYtQV/5/

$("tbody tr td").bind("click", onClick);

function onClick(e) {
    if(e.currentTarget.contentEditable != null)
    {
            $(e.currentTarget).attr("contentEditable",true);
    }
    else
    {
            $(e.currentTarget).append("<input type='text'>");
    }
}

它在 Firefox 或 Chrome 中运行良好,但在 IE8 中运行良好。

我尝试将 bind() 更改为 live() 但这没有任何效果 - 当我单击列表项时它什么也不做(虽然调用了事件处理程序)

如果我将 contentEditable 更改为所有小写的“contenteditable”,它会在每次单击它时将文本表单附加到元素,这不是我想要的。

此代码的目的是使表格项目可编辑。有想法该怎么解决这个吗?

提前致谢!

4

3 回答 3

3

TD 元素不能设置为 contenteditable。检查此页面以供参考: http: //msdn.microsoft.com/en-us/library/ms537837 (v=vs.85).aspx

您可以在单元格中添加一个空 div 并创建一个contenteditable

于 2013-05-19T15:07:04.400 回答
0

在 div 中添加 contenteditable 的唯一问题是占位符问题,因为该区域仅可编辑到该特定区域。如果您有占位符并删除占位符以编写更多内容,则它会删除编辑功能,因此请务必处理。

于 2014-08-13T20:55:20.190 回答
0

IE中有很多元素,不能直接设置contenteditable。但是,您可以将整个表格包装到内容可编辑的 div 中。

 <div contenteditable="true">
     <table>
       ...
    </table>
 </div>
于 2014-08-26T08:40:27.600 回答