JavaScript:JavaScript事件的处理

简介:

JavaScript事件处理

—————事件的处理流程;

—————动态事件绑定;

—————常用的事件处理。

 

1、事件的概念

在页面之中,会针对用户的每一个操作进行记录。在页面中的事件可以简单的理解为:页面打开、页面关闭、单机页面、双击页面等。当用户捕捉到事件之后,就可以通过指定的函数来进行处理。

范例:观察事件基本流程(页面打开事件onload、页面关闭事件onunload)

event.html

复制代码
<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta name="description" content=event.html"">
        <meta name="keywords" content="event,html,js">
        <title>javascript的程序开发之事件处理调用各自的函数</title>
        <script type="text/javascript" src="event.js"></script>
    </head>
    <body onload="loadFun()" onunload="unloadFun()">
    </body>
</html>    
复制代码

  其中unload与on unload两个事件只能够用于<body>元素上。现在需要在js文件里编写这两个对应的函数。

event.js

复制代码
function loadFun(){
    alert("欢迎光临");
}
function unloadFun(){
    alert("滚吧,别再来了!");
}
复制代码

现在可以发现,所有的事件要想进行处理,都一定会存在一个专门的处理函数完成。

实际上所有的JavaScript事件都会以on开头。如果一个事件可能调用多个函数处理,那么函数之间加上分号“;”。

event.html

复制代码
<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta name="description" content=event.html"">
        <meta name="keywords" content="event,html,js">
        <title>javascript的程序开发之事件处理,调用多个函数</title>
        <script type="text/javascript" src="event.js"></script>
    </head>
    <body onload="loadFun();unloadFun()” onunload="unloadFun()">
    </body>
</html>    
复制代码

 

 

2、动态事件的绑定

  如果从开发的角度来讲,所有的JavaScript代码都应该在*.js文件里面编写。那么事件呢?发现事件都在html文件里面编写,于是这个时候就会产生问题,美工说了,先写代码,再做美工,程序说了,先做美工,再写程序。专业前端说了,做你的美工去,我跟你并行。

  在开发中优秀的前端工程师们,不可能将处理的事件直接在HTML元素中定义,都往往采用动态绑定的形式,在页面加载的时候绑定。

范例:编写页面绑定操作

event.html

复制代码
<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta name="description" content=event.html"">
        <meta name="keywords" content="event,html,js">
        <title>javascript的程序开发之事件处理</title>
        <script type="text/javascript" src="event.js"></script>
    </head>
    <body>
    </body>
</html>    
复制代码

event.js

复制代码
window.onload = function(){   //为onload事件绑定处理
     loadFun();   //调用页面加载的处理
}
window.onunload = function(){ //为onunload事件绑定处理
      unloadFun(); //调用页面退出的处理
}
function loadFun(){
    alert("页面加载");
}
function unloadFun(){
    alert("页面退出");
}
复制代码

网页一打开就出现了页面加载的弹框:

网页一关闭就出现了页面退出的弹框: 

 

但是在开发中,事件可能有很多种。那么必须要保证这个元素有一个独一无二的id属性。

范例:动态绑定一个按钮事件

event.html

复制代码
<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="description" content=event.html"">
    <meta name="keywords" content="event,html,js">
    <title>javascript的程序开发之事件处理</title>
    <script type="text/javascript" src="event.js"></script>
</head>
<body>
    <button id="mybutton">PUSH ME</button>
</body>
</html>
复制代码

event.js

复制代码
function fun(){
   alert("按钮被点击了!");
}
window.onload = function(){ 
  //为onload事件绑定处理
  //在JavaScript里面所有的元素实际上都属于对象 
  //如果要想取得对象,则可以使用document.getElementById("ID名称")
  var obj = document.getElementById("mybutton");
  //取得id为mybutton的一个对象
  if(obj != undefined){ //表示此对象已经明确存在了
    //对象.addEventListener(事件类型,处理函数,false)
    //动态绑定事件时不要再加上"on"
    obj.addEventListener("click",function(){
        fun();
    },false);
  }
}
复制代码

点击按钮显示效果如下:

 

总结:

   以上给出的JavaScript的事件处理操作,就是现阶段主要使用的模式。

 

3、JavaScript中常用事件;

 处理鼠标事件: 在Java中鼠标事件有这样几种:

  mousedown:按下

  mouseup:  弹开

  mouseout: 出去

  mouseover:进入

  mousemove: 移动

范例:鼠标触发事件

event.html

复制代码
<!doctype html>
<html lang="zh-CN">
<head>    
    <meta charset="utf-8">
    <meta name="description" content=event.html"">
    <meta name="keywords" content="event,html,js">
            <title>javascript的程序开发之事件处理</title>
    <script type="text/javascript" src="event.js"></script>
</head>
<body>
    <img src="images/1.jpg" id="mypic" style="width:200">
</body>
</html>
复制代码

event.js

复制代码
window.onload = function(){  
    //为onload事件绑定处理
    document.getElementById("mypic").addEventListener("mousedown",function(){
    alert("鼠标的按下事件触发!");
},false);
}
复制代码

在图片里按下鼠标显示效果如下:

复制代码
window.onload = function(){  
    //为onload事件绑定处理
    document.getElementById("mypic").addEventListener("mouseup",function(){
    alert("鼠标的松开事件触发!");
  },false);
}
复制代码

在图片里松开鼠标显示效果如下:

复制代码
window.onload = function(){  
    //为onload事件绑定处理
    document.getElementById("mypic").addEventListener("mouseover",function(){
    alert("鼠标的进入事件触发!");
    },false);
}
复制代码

在图片里鼠标离开显示效果如下:

复制代码
window.onload = function(){  
    //为onload事件绑定处理
    document.getElementById("mypic").addEventListener("mouseout",function(){
    alert("鼠标的离开事件触发!");
    },false);
}
复制代码

在图片里鼠标离开显示效果如下:

复制代码
window.onload = function(){  
    //为onload事件绑定处理
    document.getElementById("mypic").addEventListener("mousemove",function(){
    alert("鼠标的移动事件触发!");
},false);
}
复制代码

在图片里鼠标移动显示效果如下:

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5824936.html ,如需转载请自行联系原作者

相关文章
|
3月前
|
JavaScript 前端开发
|
3月前
|
JavaScript 算法
|
3月前
|
JavaScript
|
22天前
|
JavaScript
事件触发、事件捕获与事件冒泡(js的问题)
事件触发、事件捕获与事件冒泡(js的问题)
12 0
|
3天前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
19 2
|
24天前
|
JavaScript 前端开发 流计算
JS:oninput和onchange事件的区别
JS:oninput和onchange事件的区别
21 1
|
1月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素依次触发事件,而事件捕获则从最外层元素向内层元素传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。例如: ```javascript element.addEventListener(&#39;click&#39;, console.log, false); // 冒泡 element.addEventListener(&#39;click&#39;, console.log, true); // 捕获 ```
17 0
|
1月前
|
JavaScript 前端开发
JS页面加载事件
JS页面加载事件
|
1月前
|
JavaScript
|
1月前
|
JavaScript 前端开发
js阻止浏览器默认事件和防止事件传播事件
js阻止浏览器默认事件和防止事件传播事件
21 3