为什么e.preventDefault()不会阻止链接被跟踪?

时间:2013-09-28 23:27:18

标签: javascript jquery

如何阻止链接被使用(使用此事件处理程序)?

http://jsfiddle.net/chovy/rsqH7/1/

<table>
    <tbody>
        <tr class="msg">
            <header><a href="http://cnn.com">cnn.com</a></header></tr>
    </tbody>
</table>

$('table').on('click', 'tr.msg header', function (e) {
    e.preventDefault();
    var $el = $(e.currentTarget);
    console.log($el);
});

1 个答案:

答案 0 :(得分:4)

您的HTML无效; <header>无法直接显示在<tr>中,而这会破坏整个事情。如果添加alert,您会注意到根本没有调用处理程序。

检查DOM给了我这个:

<header><a href="http://cnn.com">cnn.com</a></header>
<table>…</table>

这是浏览器,一如既往地有用! Correcting the HTML by putting adding a <td> fixes it.(或者您的意思是<th>而不是<header>?)