javascript禁用链接跳转等默认动作

发布日期: 2017-08-22 11:11:35 作者: Stephen 评论: 0

举一个简单的例子。

比如,有一个链接,你要在这个链接跳转前执行一些其他操作,显然,我们能想到给它添加一个单击(onclick)事件,然后执行其他的一些操作,但是你会发现,你所定义的单击事件里的操作并没有执行,而直接进行了页面跳转。那这样,我们就应该先要禁用它的链接,然后执行自定义的操作,再进行跳转或执行其他操作,那么,我们该如何禁用链接,禁用它的默认动作呢?这个问题,我们在开发中很少遇到,但遇到了也并不难处理。

JavaScript有一个方法,preventDefault(),取消事件的默认动作。

<script type="text/javascript">
$("a").click(function(event){
    event.preventDefault();//禁用默认动作
    var url = $(this).attr("href");
    window.location.href = url;//执行页面跳转
})
</script>

在w3school上是这么定义的:

该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

快来抢沙发