js添加事件监听的方式与this

<div id="box1" onclick="alert('Hello,小潘')"></div>

在标签中调用自定义函数

<div id="box1" onclick="Hello()"></div>
<script>
function Hello () {
alert('Hello,小潘');
}
</script>

DOM0级事件处理程序

这种方式也是早期的写法,但好处是可以讲js和html完全分离,前提是需要给html元素提供一个额外的id属性(或其它能获取该元素对象的方式)

<div id="box1" ></div>
<script>
var box1 = document.getElementById("box1");
box1.onclick = function () {
alert("Hello,小潘")
}
</script>
 box1.onclick = function () {
alert("Hello,小潘!")
}

则前面的事件会被后一个事件覆盖
如果想要清除该事件,则加以下代码即可

box1.onclick = null;

DOM2级事件处理程序

这是目前最流行的事件处理程序,各大主流浏览器全部支持

<div id="box1" ></div>
<script>
//添加事件监听器
//元素节点.addEventListener("事件名", 响应事件的函数, 布尔值)
//事件名 click mouseover mouseout
//函数名或者匿名函数
//事件流 false
var box1 = document.getElementById("box1");
box1.addEventListener("click", function() {
alert("Hello,小潘");
}, false)
</script>

即使后面再加同样的事件监听器也不会将前面的覆盖
清除事件

<div id="box1" ></div>
<script>
//添加事件监听器
//元素节点.addEventListener("事件名", 响应事件的函数, 布尔值)
//事件名 click mouseover mouseout
//函数名或者匿名函数
//事件流 false
var box1 = document.getElementById("box1");
function Hello () {
alert("Hello,小潘");
}
box1.addEventListener("click",Hello, false);
//移除事件
//注意:
//1. 参数与添加事件时相同
//2. 添加事件时第二个参数不能是匿名函数
box1.removeEventListener("click",Hello, false)
</script>

this 代表谁?

  • 在标签中使用,代表的是标签本身
  • 在函数体中直接使用,代表window
  • 在标签中将this 作为实参传递到函数中,在函数体中使用形参代表标签本身
  • 在事件函数中使用,代表标签本身

js添加事件监听的方式与this的更多相关文章

  1. JS通用事件监听函数

    JS通用事件监听函数 版本一 //把它全部封装到一个对象中 var obj={ readyEvent:function (fn){ if(fn==null){ fn=document; } var o ...

  2. React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路

    React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路 这几天在忙着把自己做的项目中的类组件转化为功能相同的函数组件,首先先贴一份该组件类组件的关 ...

  3. JS的事件监听机制

    很久以前有个叫Netscape的姑娘,她制订了Javascript的一套事件驱动机制(即事件捕获) 后来又有一个叫“IE”的小子,这孩子比较傲气,他认为“凭什么我要依照你的规则走”,于是他又创造了一套 ...

  4. GridView添加事件监听和常用属性解析

    1. 使用流程 graph LR 准备数据源-->新建适配器 新建适配器-->绑定数据源 绑定数据源-->加载适配器 2. 常用属性 android:columnWidth:每一列的 ...

  5. JS之事件监听

    一 如果事件监听类似于如下写法,则最终只会执行最后一个事件监听,其他监听都会被覆盖掉. window.onload=funtion(){console.log(1);}; window.onload= ...

  6. js实现事件监听与阻止监听传播

    监听事件: 使用attachEvent(用于IE)和addEventListener(用于谷歌.火狐)时则可以实现多个事件处理函数的调用 1.下面都是dom对象的方法,可以实现一种事件绑定多个事件处理 ...

  7. extjs组件添加事件监听的三种方式

    extjs对组件添加监听的三种方式  在定义组件的配置时设置 如代码中所示:  Java代码  xtype : 'textarea',  name : 'dataSetField',  labelSe ...

  8. OnTouchListener事件监听实现方式之GestureDetector

    当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等. 一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouc ...

  9. Node.js之事件监听和发送

    演示事件的发送和监听 const events = require("events"); function Account() { this.balance = 0; events ...

随机推荐

  1. layui 各项配置

    第一.如何全部选中table中每一条记录 1.首先给table的父类设置一个唯一id *这种方式不推荐,效果比较差,推荐第2种方式 再搜索 alias-table div.layui-table-fi ...

  2. MySQL数据库连接重试功能和连接超时功能的DB连接Python实现

    def reConndb(self): # 数据库连接重试功能和连接超时功能的DB连接 _conn_status = True _max_retries_count = 10 # 设置最大重试次数 _ ...

  3. Microfacet模型采样下的brdf

    本文前言 在学习图形学(games101 from bilibili)的时候,也遇到了像这样的问题,Cook-Torrance模型无法实现粗糙度为0时,物体微表面呈现绝对镜面的效果(呈现出一面镜子), ...

  4. C++学习笔记:07 类的继承与派生

    课程<C++语言程序设计进阶>清华大学 郑莉老师) 基本概念 继承与派生的区别: 继承:保持已有类的特性而构造新类的过程称为继承. 派生:在已有类的基础上新增自己的特性(函数方法.数据成员 ...

  5. postgresql高可用集群部署

    一.概况 1.概念 pgsql高可用集群采用postgresql+etcd+patroni+haproxy+keepalived等软件实现,以postgresql做数据库,etcd存储集群状态,pat ...

  6. Ysoserial Commons Collections3分析

    Ysoserial Commons Collections3分析 写在前面 CommonsCollections Gadget Chains CommonsCollection Version JDK ...

  7. 新版发布|ShardingSphere 5.0.0-beta 来了!

    Apache ShardingSphere 5.0.0-beta 版在经过长达半年的筹备后,终于将在近期正式 Release! 本文将带领大家一同预览新版本即将带来哪些重大亮点功能. 作者介绍 潘娟 ...

  8. java---String 和 StringBuffer

    Java-String和StringBuffer类 Java String 类 字符串在Java中属于对象,Java提供String类来创建和操作字符串. 创建字符串 创建字符串常用的方法如下: ​ ...

  9. for...of 和 for...in 是否可以直接遍历对象,有什么解决方案

    答案: for...of不能直接遍历对象,for  in可以直接遍历对象 原因: for...of需要实现iterator接口,对象没有实现iterator接口 解决: const obj = {a: ...

  10. python使用Django框架开发简单项目

    一. (1)使用idea生成一个python项目,安装Django框架: pip install django==1.8.2 (2)初始化项目: django-admin startproject x ...