我怎样才能创建一个空的HTML锚,因此页面不会“跳起来”当我点击它?

StackOverflow https://stackoverflow.com/questions/493175

  •  20-08-2019
  •  | 
  •  

我工作的一些jQuery来隐藏/显示一些内容,当我点击一个链接。我可以创建类似:

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

但是,如果我点击该链接,而我向下滚动页面上,它会跳回页面顶部。

如果我做这样的事情:

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

在页面将重新加载,这RID的的JavaScript已经进行的所有更改的页面。

像这样:

<a onclick="jquery_stuff" />

会给我期望的效果,但它不再显示为一个链接。是否有某种方式来指定一个空的锚,所以我可以指定一个JavaScript处理该事件onclick,与网页上没有任何更改或移动滚动条?

有帮助吗?

解决方案

把一个 “返回false;”在第二个选项:

<a href="" onclick="jquery_stuff; return false;" />

其他提示

您需要return false;jquery_stuff

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

这将取消的默认操作。

可以把简单地作为象下面这样:

<a href="javascript:;" onclick="jquery_stuff">

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>

检查eyelidlessness'注释(使用一个按钮,而不是一个锚)。正要张贴同样的建议。没有链接到资源和仅是一个锚执行脚本应作为一个按钮来实现。

  

停止把你的事件处理程序的HTML,并停止使用锚标记   不担任锚语义目的。使用一个按钮,并添加   点击你的JavaScript处理。例如:HTML <button id="jquery_stuff">Label</button>和JavaScript   $('#jquery_stuff').click(jquery_stuff);。您可以使用CSS样式化   按钮看起来像一个链接,通过去除填充,边框,边缘和   背景色,然后添加你的链接样式(如颜色,   文字修饰)。 - eyelidlessness年10月19 '10 17:40

<a href="javascript:;" onclick="jquery">link</a>

href需要在那里的东西,如果你想让它不验证的HTML弹出错误。所述javascript:;是一个很好的位置保持器。

如果你真的想使用#

<a href="#me" name="me" onclick="jquery">link</a>

小心的return false;,它会暂停无论你正在做的默认行为。

此外,如果你的JS是像提交你可能会遇到在Internet Explorer中的问题。

<a href="javascript:// some helpful comment " onclick="jquery_stuff" />

我通常使用一个<span>和风格它看起来像一个链接时,我需要完成这样的事情。

  <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,如果你再要回去香草的javascript的东西jQuery也更容易和更清洁的?

一般我做的:

<a style="cursor:pointer;" onclick="whatever();">Whatever</a>

这样如何:

<a href="#nogo" onclick="foo();">some text</a>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top