"在"事件在IE8中无法使用动态添加的元素

时间:2014-07-10 10:19:02

标签: javascript jquery html internet-explorer internet-explorer-8

我的网格代码如下:

<div>
<table id="grid" class="display">
    <thead>
        ....
    </thead>
    <tbody></tbody>
</table>
</div>

通过ajax请求填充适当的数据。一些<td>元素还包含动态添加的链接。因此,当我尝试将click事件绑定到它们时,它在IE8中不起作用。

var $grid = $("#grid");
...
$grid.on("click", "tbody a", function (e) {
    e.preventDefault();
    alert("clicked!");
});

除IE8外,它在任何地方都能正常运行。

有人可以解释我,我错在哪里以及如何解决这个问题? (我使用的是jQuery 1.9.1)

1 个答案:

答案 0 :(得分:1)

您需要编写如下函数:

$grid.on("click", "tbody a", function(event) {
    event.preventDefault();
    alert("clicked!");
});

这是因为在IE8中,事件对象是全局属性(window.event)而不是处理程序的参数。

详细了解您的问题 Quirksmode event orderMDN Event differences

同样在StackOverflow上有很多答案:Acces event target in IE8JavaScript IE event