JavaScript 事件绑定的通用方法与属性绑定详解

作者:页面旅途

时间:2026-10-30

浏览:522

本文介绍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> 

以上就是本文的全部内容,希望对大家的学习有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章