当我点击链接时,我正在研究一些JQuery来隐藏/显示一些内容。我可以创建类似的东西:
<a href="#" onclick="jquery_stuff" />
但如果我在页面上向下滚动时单击该链接,它将跳回到页面顶部。
如果我这样做:
<a href="" onclick="jquery_stuff" />
该页面将重新加载,这将覆盖javascript所做的所有更改的页面。
这样的事情:
<a onclick="jquery_stuff" />
会给我预期效果,但它不再显示为链接。有没有办法指定一个空锚,所以我可以为onclick
事件分配一个javascript处理程序,而不更改页面上的任何内容或移动滚动条?
答案 0 :(得分:79)
提出“返回假”;在第二个选项:
<a href="" onclick="jquery_stuff; return false;" />
答案 1 :(得分:24)
您需要在return false;
之后jquery_stuff
:
<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />
这将取消默认操作。
答案 2 :(得分:23)
你可以简单地如下所示:
<a href="javascript:;" onclick="jquery_stuff">
答案 3 :(得分:19)
jQuery内置了一个名为preventDefault
的函数,可以在这里找到:
http://api.jquery.com/event.preventDefault/
以下是他们的例子:
<script>
$("a").click(function(event) {
event.preventDefault();
});
</script>
你也可以建立这样的链接:
<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
答案 4 :(得分:6)
检查eyelidlessness'评论(使用按钮,而不是锚)。即将发布相同的建议。不链接到资源并仅执行脚本的锚应该实现为按钮。
停止将您的事件处理程序放在HTML中,并停止使用锚标记 不服务于锚语义目的。使用按钮添加 点击Javascript中的处理程序。示例:HTML
<button id="jquery_stuff">Label</button>
和JavaScript$('#jquery_stuff').click(jquery_stuff);
。您可以使用CSS来设置样式 按钮看起来像一个链接,通过删除填充,边框,边距和 背景颜色,然后添加您的链接样式(例如颜色和 文字修饰)。 - eyelidlessness 2010年10月19日17:40
答案 5 :(得分:4)
<a href="javascript:;" onclick="jquery">link</a>
href
如果你不想在html的验证器中弹出错误,那里需要一些东西。 javascript:;
是个好地方。
如果您真的想使用#
:
<a href="#me" name="me" onclick="jquery">link</a>
小心return false;
,它会暂停你正在做的任何事情的默认行为。
此外,如果您的js像提交一样,您可能会在Internet Explorer中遇到问题。
答案 6 :(得分:0)
<a href="javascript:// some helpful comment " onclick="jquery_stuff" />
答案 7 :(得分:-1)
我通常使用<span>
并将其设计为当我需要完成此类操作时的链接。
答案 8 :(得分:-1)
<a href="#" class="falseLinks">Link1</a>
<a href="#" class="falseLinks">Link2</a>
等。
JQUERY:
$(function() {
$("a.falseLinks").click(function() {
// ...other stuff you want to do when links is clicked
// This is the same as putting onclick="return false;" in HTML
return false;
})
});
@eyelidlessness就像他说的那样有点愚蠢,但他是对的。这是最干净的方法。为什么要使用jQuery,如果你要回到vanilla Javascript,jQuery会更简单,更清洁吗?
答案 9 :(得分:-2)
答案 10 :(得分:-4)
这个怎么样:
<a href="#nogo" onclick="foo();">some text</a>