学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象

简介: 学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象

1、常用的事件:

onload:页面加载

② onblur: 失去焦点 onfocus: 获取焦点

onclick:点击

④ onmouseover:鼠标经过 onmouseout:鼠标离开

onchange:内容改变

onsubmit:表单提交


2、绑定事件方式:

(1)行内绑定:

<元素 事件="事件处理程序(函数)">
<script>
function 函数名(){
    console.log(this); //行内绑定的this是指向window
}
</script>


(2)动态绑定(用于结构+样式+行为分离的页面):

前提是进行window.load的初始化,在初始化过程中将事件绑定到元素(标签)上

语法:对象.事件 = 事件处理程序

<button id="btn" >按钮</button>
//js文件:通过window.onload 进行初始化,在初始化的过程中将事件动态绑定到元素上
window.onload = function (){
    document.getElementById("btn").onclick = function (){
        console.log(this);
    }
}


(3)事件监听(为一个对象绑定多个事件处理程序)

① ie: attachEvent(type, callback)
     type:事件名,例如 onclick、onsubmit、onchange等  
     callback:事件处理程序(函数)
  ② 基于w3c模式:attachEventListener(type, callback, [capture])
     type:事件名,(没有前缀on)例如 click、submit、change等  
     callback:事件处理程序(函数)
     capture:可选,事件模型(为true是捕捉模式,false是冒泡模式)
//进行ie或w3c的判断
function addEvent(obj, type, callback){
    if(window.attachEvent){
        obj.attachEvent('on' + type, callback);
    }else {
        obj.addEventListener(type, callback);
    }
}


3、取消事件冒泡:

① ie: window.event.cancelBubble = true;
② w3c: function(event) {//方法的第一个参数是event
        event.stopPropagation();
     }
//进行ie或w3c的判断
function stopBubble(event){
    if(window.event){
        window.event.cancelBubble = true;
    }else{
        event.stopPropagation();
    }
}


4、取消默认行为(例如:提交按钮、超链接)

  • 有些情况需要取消掉默认行为,例如资料填写不完整,将提交按钮的提交行为进行取消
//方法一:return false取消
<form method="get" action="#" onsubmit="return false"> //取消表单提交


//方法二:ie:window.event.returnValue = false; 
//       w3c: event.preventDefault();
<form method="get" action="#" >
<input type="text" name="name" id="name"/>
    <input type="submit" value="提交" id="submit"/>
</form>
<script>
    window.onload = function (){
        document.getElementById('submit').onclick = function (event) {
            if(document.getElementById('name').value===''){
                if(window.event){
                    window.event.returnValue = false;   //ie
                }else{
                    event.preventDefault();        //w3c
                }
            }
        }
    }
</script>


5、事件对象(事件发生时产生的对象,该对象包含了该事件的所有信息)

■ 获取事件对象:

① ie8 :window.event

② ie9、w3c: function(event){ } //函数的第一个形参

目录
相关文章
|
2月前
|
JavaScript 前端开发 UED
JS DOM 事件流与事件冒泡
【10月更文挑战第16天】理解 DOM 事件流和事件冒泡是掌握 JavaScript 事件处理的关键。通过合理利用事件冒泡,可以实现更高效、灵活的事件处理机制,提升用户体验和开发效率。在实际开发中,要根据具体情况灵活运用这些概念,以达到最佳的效果。
|
9天前
|
存储 JavaScript 前端开发
JavaScript学习第一章
本文档介绍了JavaScript的基础知识,包括其在网页中的作用、如何通过JavaScript动态设置HTML元素的CSS属性,以及JavaScript中的变量类型(`var`、`let`、`const`)和数据类型(基本数据类型与引用数据类型)。通过实例代码详细解释了JavaScript的核心概念,适合初学者入门学习。
|
2月前
|
存储 JavaScript 前端开发
js事件队列
【10月更文挑战第15天】
49 6
|
2月前
|
JavaScript
js学习--商品列表商品详情
js学习--商品列表商品详情
20 2
|
2月前
|
JavaScript
js学习--九宫格抽奖
js学习--九宫格抽奖
19 2
|
2月前
|
JavaScript
js学习--开屏弹窗
js学习--开屏弹窗
36 1
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
126 0
|
2月前
|
JavaScript 前端开发 容器
js之dom学习
js之dom学习
38 0
|
7月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
49 2
|
5月前
|
JavaScript
js 事件流、事件冒泡、事件捕获、阻止事件的传播
js 事件流、事件冒泡、事件捕获、阻止事件的传播
75 1
下一篇
无影云桌面