javascript 防止锚行为

ru9i0ody  于 12个月前  发布在  Java
关注(0)|答案(6)|浏览(77)

当我想阻止我正在使用的锚标记的默认行为时

<a href="javascript:void(0);">link</a>

字符串
哪一个是最有效的解决方案?

kmbjn2e3

kmbjn2e31#

一个优雅的降级解决方案的例子:

<a href="no-script.html" id="myLink">link</a>

<script>
document.getElementById("myLink").onclick = function() {
    // do things, and then
    return false;
};
</script>

字符串
演示:http://jsfiddle.net/karim79/PkgWL/1/

3qpi33ja

3qpi33ja2#

这是一个很好的方法,如果你使用jquery,你也可以这样做:

<a id="link" href="javascript:void(0)">link</a>

<script type="text/javascript">
   $("#link").click(function(ev) {
       ev.preventDefault();
   });
</script>

字符串
preventDefault也可以用来防止提交表单

58wvjzkj

58wvjzkj3#

你也可以有这个:

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

字符串

kognpnkq

kognpnkq4#

如果你不想让浏览器在任何地方都跟随链接,我会说你有什么是最简单,最安全的解决方案。
当然,有很多其他的解决方案可以应用到JavaScript中,但是大多数其他的方法可能会失败

  • 如果事件是在DOMReady或更晚的时间分配的,则DOM不会完全加载,这很常见。
  • 单击事件侦听器处理链接(这在您不希望浏览器跟随链接的情况下很常见)。如果处理单击的JavaScript中发生错误,则可能位于语句末尾的return false;preventDefault将不会执行,浏览器将遵循链接,如果仅到#
qyzbxkaa

qyzbxkaa5#

我知道这是一个古老的线程,但这里是我经常使用

而不是这样:

第一个月

这个也可以:

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

x33g5p2x

x33g5p2x6#

这里有一个简单的方法来阻止它。

( function( $ ) {
   $( 'a[href="#"]' ).click( function(e) {
      e.preventDefault();
   } );
} )( jQuery );

字符串

相关问题