如何创建一个空的HTML锚点,以便在单击它时页面不会"跳起来"?

Ale*_*ort 61 javascript anchor jquery

当我点击一个链接时,我正在研究一些JQuery来隐藏/显示一些内容.我可以创建类似的东西:

<a href="#" onclick="jquery_stuff" />
Run Code Online (Sandbox Code Playgroud)

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

如果我这样做:

<a href="" onclick="jquery_stuff" />
Run Code Online (Sandbox Code Playgroud)

该页面将重新加载,这将消除javascript所做的所有更改的页面.

像这样的东西:

<a onclick="jquery_stuff" />
Run Code Online (Sandbox Code Playgroud)

会给我预期的效果,但它不再显示为链接.有没有办法指定一个空锚,所以我可以为onclick事件分配一个javascript处理程序,而不更改页面上的任何内容或移动滚动条?

Otá*_*cio 79

把"归还假"; 在第二个选项:

<a href="" onclick="jquery_stuff; return false;" />
Run Code Online (Sandbox Code Playgroud)

  • "回归虚假;" 是正确的方法.如果javascript:URL返回非null对象,它仍然可以替换页面,并且在open-in-new-tab等函数上给出了一个丑陋的JavaScript错误. (11认同)
  • @ RobertC.Barth:你的评论是完全没必要的,这表明你的选择更好,但事实并非如此.没有人用正确的思维代码用`javascript:`链接了.当你不想要默认行为(跳转到顶部)时,正确的做法是从处理程序@Sam返回false:显示函数的名称对用户是透明的吗?你所有的用户都是极客吗? (3认同)
  • href ="javascript:code stuff"的(可能的)问题是用户然后在状态栏中看到javascript的内容.有点不受欢迎恕我直言. (2认同)

Gre*_*reg 24

你需要return false;jquery_stuff:

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />
Run Code Online (Sandbox Code Playgroud)

这将取消默认操作.

  • <a> -tag不为空 - > <a />错误. (5认同)
  • 我喜欢为非JavaScript用户提供目标的想法.如果目标页面做了类似于javascript的操作,那将特别有用...... (4认同)
  • 根据JS正在做什么,这被认为是非JS用户最容易访问的.+1 (3认同)

Shi*_*idi 23

你可以简单地把它放在下面:

<a href="javascript:;" onclick="jquery_stuff">
Run Code Online (Sandbox Code Playgroud)

  • 这个比其他人简单得多 (2认同)

nat*_*tes 19

jQuery有一个内置的函数preventDefault,可以在这里找到:http: //api.jquery.com/event.preventDefault/

这是他们的例子:

<script>
$("a").click(function(event) {
    event.preventDefault();
});
</script>
Run Code Online (Sandbox Code Playgroud)

您还可以像这样构建链接:

<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
Run Code Online (Sandbox Code Playgroud)


小智 6

检查eyelidlessness'评论(使用按钮,而不是锚).即将发布相同的建议.不链接到资源并仅执行脚本的锚应该实现为按钮.

停止将您的事件处理程序放在HTML中,并停止使用不支持锚语义目的的锚标记.使用按钮并在Javascript中添加单击处理程序.示例:HTML <button id="jquery_stuff">Label</button>和JavaScript $('#jquery_stuff').click(jquery_stuff);.您可以使用CSS通过删除填充,边框,边距和背景颜色来设置按钮的样式,然后添加链接样式(例如颜色和文本修饰). - 眼睑10月19日在17:40的眼睑