JavaScript学习:事件处理

本文探讨了将JavaScript事件处理函数绑定到HTML元素的三种方法:直接绑定、addEventListener和attachEvent,详细解释了每种方法的特点、绑定和解除绑定的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

day two

JavaScript事件处理函数与绑定

HTML 事件是发生在 HTML 元素上的事情。
当在 HTML 页面中使用 JavaScript 时, JavaScript 可以触发这些事件。
HTML 事件可以是浏览器行为,也可以是用户行为。

今天主要分享一下给HTML元素的事件绑定JavaScript事件处理函数的几种方法。

一:ele.onxxx = function(event){}

特点:

  • 兼容性很好,但是同一个元素的同一个事件上只能绑定一个处理程序
  • 基本等同于写在HTML行间
绑定函数:
<script>
var div = document.getElementByTagName('div')[0];
div.onclick = function (){
	this.style.backgroundColor = 'green'
}
</script>

this指向元素本身

解除绑定:
ele.onclick = null/false/'';

实例:
如果想让一个事件只能被触发一次:

<script>
var div = document.getElementByTagName('div')[0];
div.onclick = function (){
	console.log('a');
	this.onclick = null; //让事件处理函数只执行一次
}
/*
div.onclick = null;
解除绑定
*/
</script>

二、ele.addEventListener(type,fn,false);

特点:

  • IE9以下不兼容(w3c标准),可以为一个事件绑定多个处理程序
绑定函数:
<script>
var div = document.getElementsByTagName('div')[0];
div.addEventListener('click',text,false);
div.addEventListener('click',texttwo,false);
function text(){
	console.log('a');
}
function texttwo(){
	console.log('b');
}
/*测试this指定哪个位置
div.addEventListener('click',function (){
	console.log(this)
},false);
*/
</script>

注:给一个元素绑定同一个事件,只能绑定一次

this指向元素本身

解除绑定
ele.removeEventListener(type, fn,false);

实例:

<script>
var div = document.getElementsByTagName('div')[0];
div.addEventListener('click',text,false);
div.addEventListener('click',texttwo,false);
function text(){
	console.log('a');
}
function texttwo(){
	console.log('b');
}
div.removeEventListener('click',text,false);
div.removeEventListener('click',texttwo,false);
</script>

注:若绑定匿名函数,则无法解除

三、obj.attachEvent(‘on’+type,fn);
  • IE独有,一个事件同样可以绑定多个处理程序
<script>
var div = document.getElementsByTagName('div')[0];
div.attatchEvent('click',text,false);
div.attachEvent('click',texttwo,false);
function text(){
	console.log('a');
}
function texttwo(){
	console.log('b');
}
</script>

注:给一个元素绑定同一个事件,能绑定多次
this指向windows

解除绑定
ele.detachEvent('on/+type,fn);

用法与上个相同,同样的匿名函数无法解除绑定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值