0

在回答了我的最后一个问题之后,我再也没有看到 preventDefault(); 之前的功能。

所以我现在的问题是,最好的方法是什么?我做了以下代码

<!DOCTYPE html>
<head>
    <script type='text/javascript' src='files/jquery-1.7.2.min.js'></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("#abc").click(function(ev) {
            ev.preventDefault();
            alert('hey');
            });
        });
       </script>
</head>
<body>
    <h1>helloasdasdasdsad</h1>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
    <a href="javascript:void();" id="abc">Link 1: javascript:void();</a><BR><BR>
    <a href="#" id="abc">Link 2: #</a><BR><BR>
    <a href="javascipt:void(0);" id="abc">Link 3: javascript:void(0);</a><BR><BR>
    <a id="abc">Link 4: NO HREF</a><BR><BR>
</body>
</html>

..我讨厌使用#,因为它会滚动到页面顶部。原来 javascript:void(); 在 href 中会导致 IE 中的语法错误。那么将 (ev) 和ev.preventDefault();行放在每个函数中的答案是什么?或者我可以return false;在每个函数的末尾吗?

什么是最好的、最广泛接受的做法?

编辑:好的,所以 event.preventDefault(); 是最好的使用方法,但是如果我想要一个冗余链接,那仍然不能回答 HREF 中的内容?我认为最佳做法是始终使用.click带有 的事件<a href="">,因为某些较旧的浏览器不会响应单击事件或将鼠标悬停在 DIV/SPAN/IMG 元素上?

4

3 回答 3

1

请参阅这篇很棒的帖子,它应该可以回答您的问题。此外,您不需要在 hrefs 中添加任何内容。

于 2012-06-29T14:51:40.347 回答
0

对于您不希望单击执行任何操作的锚点,请添加 preventDefault()

于 2012-06-29T14:51:45.797 回答
0

如果您的链接只有一个空的href="#",也许您应该考虑使用 a<span>或 a<div>代替。这样你就不需要了e.preventDefault()

e.preventDefault()并且return false都阻止默认事件行为。return false还可以防止事件冒泡 DOM。

如果你想要不显眼的代码href="javascript:void();,应该避免使用。

还要确保不要在多个地方使用相同的 id,就像使用“ABC”一样

于 2012-06-29T14:59:55.197 回答