`
ariyue
  • 浏览: 345377 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Javascript注册事件

阅读更多
首先是最常规的方法:

<p id="para" title="cssrain demo!" onclick="test()" >test</p>
<script>
function test(){
  alert("test");
}
</script>

当某一天,我们知道JavaScript要跟HTML结构实现分离后,就会改了一种写法:

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
  alert("test");
}
window.onload = function(){
    document.getElementById("para").onclick = test;
}
</script>

当我们工作越来越久后,有时候我们需要对某个元素绑定多个相同的事件类型:

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
  alert("test");
}

function pig(){
  alert("pig");
}

window.onload = function(){
     document.getElementById("para").onclick = test;
     document.getElementById("para").onclick = pig;
}
</script>

如果按照上面的写法,我们只能输出第二个函数。
这时候我们需要用到attachEvent方法:

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
  alert("test");
}

function pig(){
  alert("pig");
}

window.onload = function(){
     document.getElementById("para").attachEvent("onclick",test);
     document.getElementById("para").attachEvent("onclick",pig);
}
</script>

在一段时间内,你并没发现这段代码有任何错误。
某一天,一个名叫firefox的浏览器 闯入你的视野,当我们把这段代码放到firefox中执行后,
发现并不能正常运行。 问题就这样,越来越多,然而作为一名JS程序员,这些都是必须面对的。

为了解决这段代码的平台兼容性问题,我翻翻手册,知道了firefox跟ie的区别:
firefox中注册事件使用:addEventListener方法,同时为了兼容ie,我们必须用到if ... else...

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
  alert("test");
}

function pig(){
  alert("pig");
}

window.onload = function(){
         var element =  document.getElementById("para");
         if(element.addEventListener){  // firefox  , w3c
                element.addEventListener("click",test,false);
    element.addEventListener("click",pig,false);
         } else {   // ie
    element.attachEvent("onclick",test);
    element.attachEvent("onclick",pig);
         }
}
</script>

此时,代码就可以在多个平台上工作了。

但随着水平的进步,你不满足每次都去判断,你想把这个判断封装起来,以后可以直接调用:

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
  alert("test");
}

function pig(){
  alert("pig");
}

function addListener(element,e,fn){
     if(element.addEventListener){
          element.addEventListener(e,fn,false);
     } else {
          element.attachEvent("on" + e,fn);
     }
}

window.onload = function(){
         var element =  document.getElementById("para");
         addListener(element,"click",test);
         addListener(element,"click",pig);
}
</script>

至此,作为一个程序员的工作就完了。
中间我们从一个最传统,最基本的写法 , 然后实现Js和HTML的分离,然后又实现对同一个元素注册多个事件,期间,我们发现注册事件的兼容性问题。最后我们对注册事件的方法进行封装,方便以后使用。

好了,文章写到这里。希望大家有收获哦。。。
分享到:
评论
1 楼 xy147 2009-02-03  
从走到跑的一个过程

相关推荐

    Javascript 注册事件浅析

    ### JavaScript 注册事件浅析 #### 一、事件驱动机制概览 JavaScript 是一种典型的事件驱动语言,这意味着程序的行为主要由用户与网页交互时触发的事件来决定。这些事件可以是用户点击按钮、键盘输入或其他任何...

    实例讲解javascript注册事件处理函数

    ### JavaScript注册事件处理函数的知识点 #### 1. 什么是事件处理函数 事件处理函数是JavaScript中用来响应浏览器事件的函数,如点击、加载、输入等。当某个事件发生时,相应的事件处理函数就会被触发执行。它是...

    JavaScript 注册事件代码

    本篇文章将深入探讨如何在JavaScript中注册事件,以及解决不同浏览器间存在的兼容性问题。 首先,最基础的事件注册方式是直接在HTML元素中使用内联事件处理程序,如`onclick`属性,如下所示: ```html ()"&gt;test ``...

    JavaScript程序设计——事件处理实验报告.docx

    - **JavaScript事件注册**:通过`addEventListener`或`attachEvent`(IE浏览器)为元素添加事件监听器,也可以使用HTML属性直接绑定事件处理函数,如`onclick="functionName()"`。 - **事件处理函数**:定义函数来...

    javascript

    javascript注册事件的传统模式,javaScript放在html文档里面。

    JavaScript事件处理的方式(三种)

    JavaScript事件处理是网页交互的核心,它允许开发者在用户与页面元素交互时执行特定的代码。事件可以是用户的行为,如点击、鼠标移动或键盘输入,也可以是浏览器内部的状态变化,如页面加载完成或窗口尺寸调整。事件...

    javascript实现注册表单

    在JavaScript中,我们可以为每个输入字段添加事件监听器,例如`oninput`或`onblur`,在用户输入时或离开输入框后立即进行验证。验证可以包括非空检查、邮箱格式验证、手机号码格式验证等。例如,我们可以使用正则...

    javascript注册验证实例

    ### JavaScript注册验证实例详解 #### 一、概述 在网页开发中,为了确保用户输入的信息准确无误,前端表单验证是非常重要的一个环节。本文将详细介绍一个基于JavaScript的注册表单验证实例,该实例能够对用户的...

    javascript事件详解

    例如,如果想要在页面加载完成后改变body的边框颜色,正确的做法是注册一个onload事件处理函数,而不是使用阻塞式的while循环: ```javascript window.onload = function() { document.getElementsByName('body')...

    JavaScript注册登录

    在这个“JavaScript注册登录”主题中,我们将深入探讨如何使用JavaScript构建一个功能完备的用户注册和登录系统。 首先,注册和登录界面是任何Web应用程序的基本组成部分。它们通常包含输入字段,如用户名、电子...

    注册验证及javascript实现级联菜单

    本教程将探讨如何使用JavaScript实现注册验证以及级联菜单的功能,这些技术对于创建一个高效且用户体验良好的网页至关重要。 首先,让我们详细了解一下注册验证。注册验证是为了确保用户在创建账户时输入的信息是...

    一个简单的带有javascript验证的注册页面

    通常,JavaScript代码会绑定到表单的提交事件上,当用户点击“注册”按钮时,验证函数会被调用,只有当所有验证都通过后,表单才会被提交。 总的来说,这个项目提供了一个学习和实践JavaScript前端验证的好机会,...

    HTML+CSS+JavaScript实现登录注册源码

    总的来说,这个压缩包提供了HTML、CSS和JavaScript结合的实例,帮助开发者了解如何创建具有完整功能的登录注册页面。通过学习和分析这些源码,你可以掌握前端开发的基本技巧,包括页面布局、样式设计以及用户交互的...

    javascript事件模型代码

    `dispatchEvent`函数是用户事件接口的核心,它的作用是将事件分派给已经注册了事件处理程序的对象。函数接受三个参数:`owner`(事件目标对象)、`eventName`(事件名称)和`eventArgs`(事件参数)。如果`owner`...

    Web前端开发技术-JavaScript的事件.pptx

    在JavaScript中,有两种主要的注册事件方法。传统方式是直接将函数赋值给元素的事件属性,如`element.onclick = function() {}`。这种方式的缺点是同一事件只能有一个处理函数,后注册的会覆盖前一个。另一种是事件...

    JavaScript脚本语言用户页面注册代码

    此外,还可以利用JavaScript的事件监听机制,为表单元素添加hover效果、焦点高亮等,提升界面的互动性和美观度。 #### 总结 通过上述分析,我们可以看到JavaScript在用户注册页面中的重要作用,不仅限于基础的数据...

    教你一天玩转JavaScript(五)——使用JavaScript完成注册页面表单提示及校验

    在本篇教程中,我们将深入探讨如何利用JavaScript来创建一个具有智能提示和高效验证功能的注册页面。JavaScript作为客户端脚本语言,对于网页交互性的提升起着至关重要的作用,尤其在用户输入验证方面,它可以实时...

Global site tag (gtag.js) - Google Analytics