JavaScript 事件绑定的通用方法与属性绑定详解
作者:页面旅途时间:2026-10-30 06:28:34浏览:523
本文介绍JavaScript中两种常见的事件绑定方式。首先讲解如何通过封装通用函数addEvent,利用addEventListener(Firefox等)和attachEvent(IE)实现多事件监听及行为分离。其次分析直接使用事件属性绑定函数的优缺点,包括便于通过this引用当前对象及自动传递事件对象。
JavaScript 事件绑定的通用方法
首先介绍JavaScript中添加事件的通用实现方法,具体内容如下。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p id="p1">测试添加事件:firefox使用addEventListener,ie使用attachEvent<br>
点击此p标签,绑定了2个弹出事件</p>
<script>
function test1() {
alert("test1");
}
function test2(){
alert("test2");
}
//添加事件通用方法
function addEvent(element,e,fn) {
//firefox使用addEventListener,来添加事件
if(element.addEventListener) {
element.addEventListener(e,fn,false);
}
//ie使用attachEvent,来添加事件
else {
element.attachEvent("on"+e,fn);
}
}
window.onload = function(){
var element = document.getElementById("p1");
addEvent(element,"click",test1);
addEvent(element,"click",test2);
}
</script>
</body>
</html>
JavaScript中绑定事件的常用方式主要有以下几种:
事件属性绑定方式及其优点
第一种绑定事件的方式是通过HTML元素的事件属性直接绑定事件处理函数。
这种方式具有以下优点: 1、实现了行为与结构的分离。 2、便于操作当前对象,因为函数作为on***属性的值出现,可以直接使用this关键字引用当前事件的目标对象。 3、方便读取事件对象,当事件触发时,系统会自动将事件对象传递给事件处理函数,并通过参数进行传递。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>JS事件绑定</title>
<script type="text/javascript">
window.onload=function(){
var k=document.getElementById('k').onclick=function(event){
var jj=document.getElementById('jj');
jj.style.top=event.clientX+'px';
jj.style.left=event.clientY+'px';
}
}
</script>
<style>
#k{width:60px;height:80px; background-color:#80ffff;}
#jj{width:60px ;height:80px;background-color:#ffff00;z-index:1000;position:absolute;}
</style>
</head>
<body>
<div id="k"></div>
<div id="jj"></div>
</body>
</html>
以上就是本文的全部内容,希望对大家的学习有所帮助。
作者最新文章
JS监听滚动事件:回到顶部按钮的显示与隐藏逻辑
2026-11-05 16:19:37
JavaScript怎么读写LocalStorage与SessionStorage
2026-11-05 15:40:11
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
2026-11-05 11:24:55
flv.js 与 hls.js 在直播场景下的选型对比
2026-11-05 08:18:52
JavaScript能做什么?前端开发中的作用与应用场景解析
2026-11-04 23:17:54
