点击<a href="#">阻止自动跳转到顶部方法

  最近开发web项目,遇到一个问题 ,就是在<a>标签加href="#",并增加onclick事件,页面会自动在点击该标签绑定的元素时,自动跳转到页面顶部,在网上寻求了一番解决办法后,总结下来有两种比较常用的解决办法:

(1):<a href="###" onclick="">

   通常我们的写法是href=“#”,默认的锚是#top 也就是网页的上端,所以浏览器会在点击事件后跳转到顶部。此时用“##”或者“###”等都可以实现不回到页面顶部,为什么呢,因为浏览器不认识啊,就默认不处理了。即此时只会响应点击事件。

 

(2<a href="javascript:void(0)" onclick="">

  这种方式也可以避免回到顶部。我们可以使用void操作符指定超级链接,如javascript:void(document.form.submit())。表达式会被计算但是不会在当前文档处装入任何内容,void(0)计算为0,但在JavaScript上没有任何效果,也就是说 <a href="javascript:void(0)">的效果同<a href="javascript:void(1)">的效果是一样的。 关键是只要知道void是javascipt
自身的操作符,它表示的是只执行表达式,但没有返回值! 如<a href="javascript:void(document.form.submit())">此时点击事件就会提交一个表单。

  javascript:void(0)要慎用:要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。其实我们可以这样用<a href="javascript:void(document.form.submit())">,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),所以在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新。

posted @ 2017-07-27 09:15  betterMann  阅读(4491)  评论(0编辑  收藏  举报