javascript - jQuery.html() 插入输入字段在 IE11 中不起作用
问题描述
我对 jQuery 的 .html 方法有疑问。双击时,我正在使用以下事件在表格行中插入输入字段。在 Google Chrome 和 Firefox 中一切正常 - 但在 Internet Explorer 11 中无法正常工作。
代码如下:
$(document).on('dblclick', '.myTable tbody tr td:not(:first-child)', function () {
var originContent = this.innerText;
$(this).html('<input type="text" value="' + originContent + '">')
$(this).children().focus();
});
我还尝试了以下方式来插入输入字段:
$(this).html($('<input />', {
type: "text",
value: originContent
}));
但它不会起作用。IE11 控制台中没有错误 - 它只是不替换 innerHTML。但请注意:如果我尝试用 .html(1234) 或 .html('string') 之类的数字或字符串替换调试会话中的内部 html,它会起作用。
我究竟做错了什么?其他人注意到这样的问题吗?
解决方案
我不知道为什么和如何,但显然$(this).children().focus(); 让它崩溃或阻止它在 IE 中显示....
编辑:错误是由于我处理的错误事件而产生的。我的第一个事件是在双击表格行时做出反应 - 在附加 html 输入字段后,我将焦点更改为输入元素。
但是我的第二个事件处理程序应该对输入元素之外的焦点做出反应,但我错过了选择器中的输入。所以每次我点击表格行时,我都会插入输入并同时删除它。为什么它在 Chrome 中起作用仍然很奇怪,猜它只是知道我想要什么¯_(ツ)_/¯
推荐阅读
- tfs - 使用 TF VC 命令替换“Team Foundation PowerTools”TFPT GETCS 命令
- django - django 查询模型 A 并从相关模型 B 中排除一些项目
- c# - 如何从 Python 调用 .NET 的 ServiceBase.OnCustomCommand 方法?
- jackson - 压扁杰克逊
- reactjs - React 虚拟化可编辑行
- python - 正则表达式:如果字符串以所需序列开头,如何仅将内部子字符串与一组匹配
- node.js - 无法读取未定义的 Nodejs 和 React 前端的属性“验证”
- html - xpath 选择具有 id 的 div 并在具有特定后代的第一个合格的前兄弟处停止
- python - 交换数字的第一个和最后一个数字(使用循环)
- ruby-on-rails - Rails 控制器渲染 json。我需要包含 nil 值