61

我正在处理一些 JQuery 以在单击链接时隐藏/显示一些内容。我可以创建类似的东西:

<a href="#" onclick="jquery_stuff" />

但是,如果我在页面上向下滚动时单击该链接,它将跳回页面顶部。

如果我这样做:

<a href="" onclick="jquery_stuff" />

页面将重新加载,从而消除了 javascript 所做的所有更改。

像这样的东西:

<a onclick="jquery_stuff" />

会给我想要的效果,但它不再显示为链接。有什么方法可以指定一个空的锚点,这样我就可以为onclick事件分配一个 javascript 处理程序,而无需更改页面上的任何内容或移动滚动条?

4

11 回答 11

79

放一个“return false;” 关于第二个选项:

<a href="" onclick="jquery_stuff; return false;" />
于 2009-01-29T20:09:50.077 回答
24

您需要return false;jquery_stuff

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />

这将取消默认操作。

于 2009-01-29T20:09:52.793 回答
24

你可以简单地说如下:

<a href="javascript:;" onclick="jquery_stuff">
于 2009-01-31T06:03:44.543 回答
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>
于 2012-04-28T14:48:25.603 回答
6

检查没有眼睑的评论(使用按钮,而不是锚点)。正要发布相同的建议。不链接到资源而仅执行脚本的锚点应实现为按钮。

停止将事件处理程序放在 HTML 中,并停止使用不用于锚语义目的的锚标记。使用一个按钮并在您的 Javascript 中添加点击处理程序。示例:HTML<button id="jquery_stuff">Label</button>和 JavaScript $('#jquery_stuff').click(jquery_stuff);。您可以使用 CSS 将按钮样式设置为看起来像一个链接,方法是删除填充、边框、边距和背景颜色,然后添加您的链接样式(例如颜色和文本装饰)。– 2010 年 10 月 19 日 17:40

于 2011-04-05T13:57:03.097 回答
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 中遇到问题。

于 2009-01-29T22:09:43.957 回答
0
<a href="javascript:// some helpful comment " onclick="jquery_stuff" />
于 2009-01-29T20:09:50.873 回答
-1

当我需要完成类似的事情时,我通常使用 a<span>并将其设置为看起来像一个链接。

于 2009-02-01T05:18:57.050 回答
-1
  <a href="#" class="falseLinks">Link1</a>
  <a href="#" class="falseLinks">Link2</a>

ETC..

查询:

  $(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 他说的方式有点脏,但他是对的。这是最干净的方法。如果你要回到原生 Javascript 来做 jQuery 更容易和更清洁的东西,为什么还要使用 jQuery?

于 2013-09-09T13:28:32.853 回答
-2

通常我会这样做:

<a style="cursor:pointer;" onclick="whatever();">Whatever</a>
于 2010-10-19T17:36:14.450 回答
-4

我会使用一个<button>元素和纯 JavaScript 来实现你所追求的。但是,如果您坚持,这是接受答案的另一种方法:

<a href="#nowhere" onclick="console.log('Hello, world!');">This link goes nowhere because the target doesn't exist.</a>

于 2011-12-24T15:51:22.423 回答