Javascript 重新呈现视图后,event.currentTarget.innerHTML在IE10中为空

Javascript 重新呈现视图后,event.currentTarget.innerHTML在IE10中为空,javascript,jquery,backbone.js,cross-browser,internet-explorer-10,Javascript,Jquery,Backbone.js,Cross Browser,Internet Explorer 10,以下是测试结果(请在Chrome和IE10中测试以查看差异) HTML 点击我 JS var标记='单击我'; $('a')。在('click','button',function()上{ $('a').html(标记); }); $('a')。在('click','button',函数(事件){ console.log(event.currentTarget.innerHTML);//…(1) }); 第(1)行在Chrome和Firefox中给出了正确的输出,而在IE10中,我得到了空

以下是测试结果(请在Chrome和IE10中测试以查看差异)

HTML

点击我
JS
var标记='单击我';
$('a')。在('click','button',function()上{
$('a').html(标记);
});
$('a')。在('click','button',函数(事件){
console.log(event.currentTarget.innerHTML);//…(1)
});
第(1)行在Chrome和Firefox中给出了正确的输出,而在IE10中,我得到了空字符串作为
event.currentTarget.innerHTML
的值。仅当再次渲染
div(#a)
时才会发生这种情况


PS:我正在使用
Backbone.js
重新渲染视图,但为了使问题更简单,我将Backbone从图片中删除,从而将问题细化为上述问题。

我很好奇,所以尝试了一下。这不会回答您的问题,但可能指向正确的方向

(1) 在您的示例中,您使用相同的按钮替换按钮,如果您使用不同的文本替换按钮,您将在chrome中看到innerHTML实际上是未替换的文本

(2) 在IE
currentTarget
中,是一个没有父级的空按钮

(3) 如果您这样做,它(有点)在IE和chrome中工作:

event.delegateTarget.children[0].innerHTML
(4) 无论哪种方式,文档类型都没有区别


因此,您的答案将是找出delegateTarget和currentTarget之间的差异,或者只是使用delegateTarget

非常感谢您提供了非常有用的信息+1.我真的很感激。
var markup = '<button>CLick me</button>';

$('#a').on('click', 'button', function() {
  $('#a').html(markup);
});

$('#a').on('click', 'button', function(event) {
  console.log(event.currentTarget.innerHTML); //.....(1)
});
event.delegateTarget.children[0].innerHTML