IE 8 jQuery点击事件 - $(this)导致未定义

时间:2013-02-14 10:46:36

标签: jquery html internet-explorer-8

有一个内部有一个表的链接容器的麻烦。最初我有一个围绕div的标签(里面有桌子),因为它在HTML5中是“允许的”但是在IE 6-8中点击表格时没有重定向页面。

在这里查看一些类似的帖子我发现问题是在嵌入式元素中嵌套块元素,其中IE(令我惊讶的是)正确实现。为了解决这个问题,我添加了一个包装div,给它一个URL的数据路径属性,并在jQuery中设置一个click事件。

问题是现在click事件有效但返回undefined。如果你点击表格内容。我猜这与我使用$(this)有关,但不是100%。

HTML:

<div class="single-event" data-path="someUrl">
   <div class="">
      <h1></h1>
      <p></p>
      <table>
          ........
      </table>
   </div>
</div>

The Js

$('.single-event').click(function () {
     window.location.href = $(this).attr('data-path');
});

如果我可以改进我的问题,请告诉我,并感谢您的回复!

1 个答案:

答案 0 :(得分:0)

问题可能是在分配点击处理程序时文档dom尚未就绪。

将赋值函数包装在文档就绪事件处理程序中,如下所示。

<script type="text/javascript">
    $(document).ready(function () {
         $('.single-event').click(function () {
             window.location.href = $(this).attr('data-path');
         });
    });
</script>