我对jQuery的.html方法有疑问。我正在使用以下事件在双击时在表行中插入输入字段。在谷歌浏览器和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,如.html(1234)或.html(&#39; string&#39;),它可以工作。
我做错了什么?还有其他人注意到这样的问题吗?
答案 0 :(得分:0)
我不知道为什么以及如何但显然 $(this).children()。focus(); 崩溃或阻止在IE中显示....
编辑:错误是由于我处理的错误事件而导致的。我的第一个事件在双击表行时反应 - 在追加html输入字段后,我将焦点更改为输入元素。
但是我的第二个事件处理程序应该对输入元素的焦点做出反应,但我错过了选择器中的输入。因此,每当我点击表格行时,我插入输入并将其删除重合。为什么它在Chrome中运行仍然很奇怪,猜它只知道我想要什么¯_(ツ)_ /¯