美文网首页
dom添加事件的3种方式

dom添加事件的3种方式

作者: newway_001 | 来源:发表于2019-06-06 21:05 被阅读0次

1.在html中添加事件

直接在dom对象上注册事件名称,就是DOM0写法,所有浏览器支持

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Test</title>

</head>
<body>

 <button onclick='handle()'>12123123</button> <script>
function handle(){
  alert('hello world')
}
</script>
</body>
</html>

2.在js中添加事件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Test</title>

</head>
<body>
<button id='aaa'>12123123</button>
<script>
function handle(){
  alert('hello world')
}
//document.getElementById('aaa').onclick=function(){alert('hello world')};
document.getElementById('aaa').onclick=handle
</script>
</body>
</html>

js里面有两种写法
另外有趣的一点是如果document.getElementById('aaa').onclick=handle
写成
document.getElementById('aaa').onclick=handle()
会是什么情况?
加括号会默认为window的函数调用,不点击就会执行,不加才是#aaa的onclick调用

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1{width:100px; height:100px; background:red;}
</style>

</head>
<body>
<div id="div1"></div>
<script>

  document.getElementById('div1').onclick=function(){
fn1(1)


  function fn1(a){
      alert(a)
  }; 
};
</script>
</body>
</html>

3.监听事件

dom2事件通过addEventListener事件绑定,有三个阶段

事件捕获阶段
处于目标阶段
事件冒泡阶段

可以同时绑定多个事件,按顺序执行;

如果绑定的函数为匿名函数,则不能将监听事件移除。addEventListener事件地第三个参数:第三个参数false,表示在事件第三阶段(冒泡)触发,true表示在事件第一阶段(捕获)触发。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1{width:100px; height:100px; background:red;}
</style>

</head>
<body>
<div id="div1"></div>
<script>

  document.getElementById('div1').addEventListener('click',function(){

this.style.backgroundColor='yellow';

})
</script>
</body>
</html>

如果要传参,参照js绑定传参处理。

dom3级事件,包含焦点事件,键盘事件等等;
阻止冒泡事件:
window.event? window.event.cancelBubble = true : e.stopPropagation();
前者兼容ie,后者是w3c标准

相关文章

  • 22. 事件

    1. DOM0 事件和DOM2级在事件监听使用方式上有什么区别? 添加方式DOM0级事件是通过内联方式 ... 或...

  • 进阶9 事件

    1. DOM0事件和DOM2级在事件监听使用方式上有什么区别? 添加方式:DOM0级事件是通过内联方式 ,或是...

  • 事件

    1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别? Dom0添加同一个事件只能添加一次,多次添加时后...

  • 事件

    1. DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0级添加方式为元素对象添加一个属性方法,t...

  • 事件

    1.DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0 事件:使用onClick方法直接添加事件...

  • 事件

    题目1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0级的事件添加形式为 DOM2级事件添...

  • 事件

    1、DOM0事件与DOM2级在事件监听使用方式上有声明区别? DOM0事件添加形式 DOM0中事件处理程序是该元素...

  • 事件

    题目1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0事件的添加形式为:let btn =...

  • 事件

    1:DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0事件的添加形式为: 使用DOM0级方法指定...

  • 事件

    题目1: DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0级事件,添加多个事件处理程序时, 会...

网友评论

      本文标题:dom添加事件的3种方式

      本文链接:https://www.haomeiwen.com/subject/xbfpxctx.html