JavaScript 阻止事件默认行为的几种方法

 更新时间:2024年05月12日 15:34:46   作者:Heo  
在JavaScript中,事件默认行为是指在特定的事件发生时浏览器自动执行的操作,本文主要介绍了JavaScript 阻止事件默认行为,感兴趣的可以了解一下

默认行为

在JavaScript中,事件默认行为是指在特定的事件发生时浏览器自动执行的操作。例如,当用户单击一个链接时,浏览器会自动跳转到链接的URL页面;form 元素 的 action 属性值表单内容要提交的地址,而用户点击表单元素中嵌套的提交按钮时,就会有一个默认的提交操作。

而有时候,不需要这些默认行为。比如,我们提交表单希望ajax 异步发送到服务器,不需要form 的默认事件提交跳转行为。

一句话说就是 html 元素自带的行为。

阻止默认行为

1. 使用event.preventDefault()方法:

这是阻止事件默认行为最常用的方法之一。当事件被触发时,可以调用event.preventDefault()方法来阻止浏览器执行其默认行为。例如,在单击链接时,可以通过以下方式阻止浏览器跳转到链接的URL页面:

document.querySelector('a').addEventListener('click', function(event) {
  event.preventDefault();
});

2. 使用return false:

在某些情况下,可以在事件处理程序中使用return false来阻止事件默认行为。这种方式通常用于内联事件处理程序,例如onclick属性。例如,以下代码将阻止单击链接时的默认行为:

注意:如果写在 jQuery 中,能够同时阻止默认行为和阻止冒泡。

<a href="#" rel="external nofollow"  onclick="return false;">点击我不会跳转</a>

3. 使用event.returnValue属性:

在旧版本的IE浏览器中,可以使用event.returnValue属性来阻止事件默认行为(现在很多浏览器也支持)。将event.returnValue设置为false可以阻止默认行为的执行。例如:

document.querySelector('a').attachEvent('onclick', function(event) {
  event.returnValue = false;
});

4. 使用event.stopPropagation()方法(仅阻止事件传播):

阻止事件传播。   event.stopPropagation()方法用于阻止事件的进一步传播,而不是直接阻止事件的默认行为。它可以用于停止事件冒泡到父元素或其他事件监听器。例如:

document.querySelector('.child').addEventListener('click', function(event) {
  event.stopPropagation();
});

5. 使用 cancelable 属性

查看状态。 该属性表示事件是否可以取消,返回一个布尔值。该属性是只读属性。true 表示可以取消。

<a id="test" href="https://www.baidu.com" rel="external nofollow"  rel="external nofollow" >百度</a>
<script>
    let test = document.getElementById('test');
    test.onclick = function (e) {
        // 可以取消事件的默认行为
        console.log(e.cancelable)
    }
</script>

6. defaultPrevented 方法

查看状态。 也是 event的一个属性,表示默认行为是否被阻止,true 表示被阻止。

<a id="test" href="https://www.baidu.com" rel="external nofollow"  rel="external nofollow" >百度</a>
<script>
    let test = document.getElementById('test');
    test.onclick = function (e) {
        e.preventDefault()
        console.log(e.defaultPrevented)  // true
    }
</script>

需要注意的是,不同的事件有不同的默认行为,因此阻止默认行为的方法可能会有所不同。一些常见的事件默认行为包括表单提交、链接点击、表单元素的键盘输入等。
总结起来,使用event.preventDefault()方法是最常见和推荐的阻止事件默认行为的方法。其他方法如return false和event.returnValue属性在特定情况下可能有用,但不如event.preventDefault()方法灵活和通用。另外,event.stopPropagation()方法用于阻止事件传播,而不是直接阻止事件的默认行为。

到此这篇关于JavaScript 阻止事件默认行为的几种方法的文章就介绍到这了,更多相关JavaScript 阻止默认行为内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript实现将图片地址转成文件流并上传

    JavaScript实现将图片地址转成文件流并上传

    这篇文章主要为大家详细介绍了如何使用JavaScript实现将图片地址转成文件流并上传,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • 深入理解requireJS-实现一个简单的模块加载器

    深入理解requireJS-实现一个简单的模块加载器

    本篇文章主要介绍了深入理解requireJS-实现一个简单的模块加载器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • li隔行换色效果代码升级版

    li隔行换色效果代码升级版

    增加了对同一ID内的多个子容器中的tag(标签)分别做隔行处理。div+css布局下,也可以控制了
    2008-05-05
  • 一个挺有意思的Javascript小问题说明

    一个挺有意思的Javascript小问题说明

    目前为止,就我的猜测,javascript执行应该是先做语法分析,然后顺便分析完成了变量表(本地和全局)
    2011-09-09
  • 利用transition实现文字上下抖动的效果

    利用transition实现文字上下抖动的效果

    这篇文章主要给大家介绍了利用transition属性如何实现文字上下抖动的效果,文中给出了详细的介绍和完整的实例代码,相信对大家的学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2017-01-01
  • 基于JavaScript实现动态创建表格和增加表格行数

    基于JavaScript实现动态创建表格和增加表格行数

    这篇文章主要介绍了基于JavaScript实现动态创建表格和增加表格行数的相关资料,需要的朋友可以参考下
    2015-12-12
  • js实现楼层效果的简单实例

    js实现楼层效果的简单实例

    下面小编就为大家带来一篇js实现楼层效果的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Javascript 判断Flash是否加载完成的代码

    Javascript 判断Flash是否加载完成的代码

    网站加入flash广告代码,利用DIV层来控制进度的状态,如果加载swf文件到100%的时候就显示出flash,把AD层隐藏掉,请看下面实现方法。
    2010-04-04
  • uni-app项目实现多服务环境切换的详细教程

    uni-app项目实现多服务环境切换的详细教程

    uni-app能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE可视化的运行和打包也让开发体验也非常棒,最近在和服务端联调的时候发现服务端接口问题较多,好几个接口调了一下午还是报错,所以本文给大家记录一下uni-app项目实现多服务环境切换的详细教程
    2025-06-06
  • 使用javascript提交form表单方法汇总

    使用javascript提交form表单方法汇总

    这篇文章主要介绍了通过a标签的超链接提交form表单方法汇总,十分的全面细致,也很实用,有需要的小伙伴可以参考下。
    2015-06-06

最新评论