2012-01-31 108 views
11

点击锚链接时是否有避免跳转的方法?这样视图不会改变。如何在点击锚链接时停止跳转?

+0

您能告诉我们一个“跳跃”代码的例子吗? – 2012-01-31 11:36:22

+0

如果你不希望视图改变,为什么有一个锚链接?请清除此。 – 2012-01-31 12:18:52

回答

0

你可以使用JavaScript来阻止链接的默认行为,一个简单的例子是:

<a href="#myanchor" onclick="return false;">link</a> 
+0

当我使用你的代码段时,ID为div的位置不会改变 – Tomkay 2012-01-31 11:45:49

+0

我标记了这一点cos内联js是一场噩梦 - 在我看来 – matpol 2013-11-11 16:41:30

+0

显然它做停止跳跃的工作,但也阻止事件发生 – 2016-08-10 23:39:38

14

只需使用:

<a href="javascript:void(0);">Text</a> 
+1

我这标记下来这是:http://stackoverflow.com/questions/2321469/when-do-i-need-to-specify-the-javascript-protocol – matpol 2013-11-11 16:40:45

+0

event.preventDefault();是一个更好的选择 – 2014-12-02 10:09:01

+0

不错...谢谢 – mostafaznv 2015-11-29 16:58:26

17

最语义和有意义的方式解决这个问题将是处理来自JavaScript内的onclick事件。理想情况下,该文件最好存储在一个单独的文件中,但是,在问题文件中包含一个内嵌脚本就足够了。如果你已经在使用像jQuery这样的JavaScript库,那么我建议如何解决这个问题。

分配一个ID
包括ID属性来你的锚所以它能够使用jQuery选择:

<a href="#anchor" id="mylink" title="Title Here">Link Text</a> 

绑定click事件
从你的JavaScript文件/流水线内脚本包括以下内容:

$('#mylink').click(function(event) { 

    // This will prevent the default action of the anchor 
    event.preventDefault(); 

    // Failing the above, you could use this, however the above is recommended 
    return false; 

}); 

以上所述的方法是EXPL充分使用jQuery API网站:http://api.jquery.com/event.preventDefault/

+2

有时你想禁用跳转和执行所有其他默认行为,如追加#anchor到没有页面重新加载的位置。 event.preventDefault()本身不起作用。 – Nicholas 2017-06-16 09:58:12