我的网格代码如下:
<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)
答案 0 :(得分:1)
您需要编写如下函数:
$grid.on("click", "tbody a", function(event) {
event.preventDefault();
alert("clicked!");
});
这是因为在IE8中,事件对象是全局属性(window.event
)而不是处理程序的参数。
详细了解您的问题 Quirksmode event order和MDN Event differences。
同样在StackOverflow上有很多答案:Acces event target in IE8或JavaScript IE event