阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

今天来看看前端的冒泡和事件默认事件如何处理

1.event.stopPropagation()方法

这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开,

2.event.preventDefault()方法

这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;

3.return false  ;

这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为return false就等于同时调用了event.stopPropagation()和event.preventDefault()

4.我们来看看几组demo,使用jquery进行DOM操作

这是html代码,div里面套了一个a标签,连接到百度

<div class="box1">
            <a href="http://www.baidu.com" target="_blank"></a>
        </div>  

css代码,a标签占父元素的空间的1/4,背景颜色为红色;

.box1{
                height: 200px;
                width: 600px;
                margin: 0 auto;
            }
            .box1 a{
                display: block;
                height: 50%;
                width: 50%;
                background:red;
            }  

下面来看js代码,第一种

//不阻止事件冒泡和默认事件  

            $(".box1").click(function(){
                console.log("1")//不阻止事件冒泡会打印1,页面跳转;
            });  

第二种

//阻止冒泡
            $(".box1 a").click(function(event){
                event.stopPropagation();//不会打印1,但是页面会跳转;              

            });  

            $(".box1").click(function(){
                console.log("1")
});  

第三种

$(".box1 a").click(function(event){
//阻止默认事件
event.preventDefault();//页面不会跳转,但是会打印出1,
});  

$(".box1").click(function(){
console.log("1");
});  

第四种

$(".box1").click(function(){
console.log("1")
});
//阻止冒泡
$(".box1 a").click(function(event){
event.stopPropagation();
//阻止默认事件
event.preventDefault() //页面不会跳转,也不会打印出1
})  

第五种

$(".box1").click(function(){
                console.log("1")
            });
$(".box1 a").click(function(event){
                return false;  //页面不会跳转,也不会打印出1,等于同时调用了event.stopPropagation()和event.preventDefault()  

});  

原文地址:https://www.cnblogs.com/yourName/p/8535237.html

时间: 2024-12-17 15:23:25

阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别的相关文章

vue.js阻止事件冒泡和默认事件

首先我们来看原生JS取消事件冒泡方法: e.stopPropagation(); //非IE浏览器window.event.cancelBubble = true; //IE浏览器 原生JS阻止默认事件方法: e.preventDefault(); //非IE浏览器window.event.returnValue = false; //IE浏览器 而vue.js给我们提供了更简便的方法,我们可以通过function($event)来获取事件对象,$event.target则是选择发生事件的目标元

原生js中stopPropagation,preventDefault,return false的区别

1.stopPropagation:阻止事件的冒泡,但不阻止事件的默认行为. 最好莫过于用例子说明: <div id='div'  onclick='alert("div");'>    <ul  onclick='alert("ul");'>        <li id='ul-a' onclick='alert("li");'><a href="http://www.baidu.com&qu

事件冒泡以及取消事件冒泡方法

事件冒泡 以及 取消事件冒泡方法 1. 事件冒泡的原理: 2. 取消事件冒泡的方法: 方法一:return false  (在定义的事件回调函数的后面加上这句代码) 方法二:event. stopPropagation() 方法三:event. preventDefault() (在Chrome浏览器中,失效了) 原文地址:https://www.cnblogs.com/david-lcw/p/10430271.html

JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生. 一.event.stopPropagation() 阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时候,如果点击一个连接,这个连接仍然会被打开. 二.event.preventDefault() 阻止默认事件的方法,调用此方法时,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 三.return false: 这个方法比较暴力,会同时阻止事件冒泡也会阻止默认事件:写上此代码,连接不会被

基本event封装:阻止冒泡、默认事件等

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <div id="box"> <input type="button" value="按钮3" id="btn3"> <a href="http://www.so

js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 # )

在前端开发工作中,由于浏览器兼容性等问题,我们会经常用到“停止事件冒泡”和“阻止浏览器默认行为”. 1..停止事件冒泡 JavaScript代码 //如果提供了事件对象,则这是一个非IE浏览器if ( e && e.stopPropagation )//因此它支持W3C的stopPropagation()方法e.stopPropagation(); else//否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true;return fal

阻止事件冒泡和默认行为,禁止键盘事件

阻止事件冒泡: function(e){ e = e || window.event; if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; } 取消事件默认行为: function(e) { e = e || window.event; if(e.preventDefault) e.preventDefault(); else e.returnValue = false; } 阻止键盘输入 elem.on

阻止JS事件冒泡传递(cancelBubble 、stopPropagation)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Test.WebForm1" %> <!DOCTYPE html><html><head><title> 阻止JS事件冒泡传递(cancelBubble .stopPropagation)</

Jquery如何阻止元素冒泡同类型事件

今天遇到一个问题,组件中同元素绑定了多个相同的事件a,b,在a事件中有一个回调函数返回一个布尔类型值,如果为真则继续下去,如果假则直接return; 那么我们先来了解一下事件对象中阻止事件的几个方法: 1. event.preventDefault();  -- 阻止元素的默认事件.注:a元素的点击跳转的默认事件 , button,radio等表单元素的默认事件 , div 元素没有默认事件 例: <a href="http://www.baidu.com" target=&qu