事件

HTML 事件是发生在 HTML 元素上的事情。例如用户点击按钮时,点击也是一个事件。事件可以用于处理表单验证,用户输入,用户行为及浏览器动作,如:

  • 页面加载时触发事件
  • 页面关闭时触发事件
  • 用户点击按钮执行动作
  • 验证用户输入内容的合法性

PC端上常用的事件:

事件 说明
onchange HTML 元素改变
onclick 用户点击 HTML 元素
onmouseover 用户在一个HTML元素上移动鼠标
onmouseout 用户从一个HTML元素上移开鼠标
onkeydown 用户按下键盘按键
onload 浏览器已完成页面的加载

怎样将事情处理程序绑定到特定的事件中?

方法一:

在标签中添加事件

<button onclick="alert(‘hello world’)">点我</button>

方法二:

在js代码中获取对象,然后设置对象事件的匿名函数

var btn=document.getElementById('btn');
btn.onclick=function() {
alert('hello world');
}

方法三:

addEventListener() 方法用于向指定元素添加事件句柄

var btn=document.getElementById('btn');
btn.addEventListener("click",function(){
alert("hello world");
})

给一个按钮添加一个点击事件,固然简单,但如果是N多个呢?这时我们可以使用 for 循环

//获取一系列按钮
var btn=document.getElementsByTagName('button');
for(var i = 0; i < btn.length; i++){
btn[i].onclick= function() {
   //代码
  }
}

以上面的例子,值得一说的是,在 for 循环中你可以用 i 来选择 btn ,但是 for 循环会把所有除事件外所有代码都执行一遍,等到用户进行特定的操作后才会触发事件,而 i 这时候已经变成了 btn.length ,无法调用相应的元素事件,所以要用到 this 或 给元素绑定一个值。例:

var btn=document.getElementsByTagName('button');
for(var i = 0; i < btn.length; i++){
//给元素绑定一个值
btn[i].index = i;
btn[i].onclick= function() {
//使用this 调用自身
   this.style.width="100px";
//用绑定的值调用元素
btn[this.index].style.width="100px";
  }
}

this 是的使用时有局限性的,在不同的地方有不同的含义与功能,例如在上面例子的事件中加上一个定时器,这是定时器里的 this 就无法正确的指向我们想要元素与事件,这时,我们可以在定时器外把 this 赋值给一个变量,this有局限性,而这个变量却没有。例:

var btn=document.getElementsByTagName('button');
for(var i = 0; i < btn.length; i++){
btn[i].onclick= function() {
//将自身复制给一个变量
var obj = this;
setInterval(function() {
obj.style.width = "100px";
},1000)
  }
}

Javascript初学篇章_8(事件)的更多相关文章

  1. Javascript初学篇章_5(对象)

    对象 Javascript是一种面向对象的语言,因此可以使用面向对象的思想来进行javascript程序设计对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体.举个例子,一只猫是个对象, ...

  2. Javascript初学篇章_4(循环与函数)

    七.循环语句 1.While 语法: while (exp){ //statements; } 说明: while (变量<=结束值){ 需执行的代码 } 例: var i=0; while(i ...

  3. Javascript初学篇章_3(注释/if/switch)

    五.javascript的注释 // 单行注释 /* …*/ 多行注释 注:多行注释不能互相嵌套 六.程序流程控制 一.条件语句 if 语法: if(condition) statements1 el ...

  4. Javascript初学篇章_1(概念/数据类型)

    Javascript是一门脚本语言,主要由浏览器来执行.它可以说是页面的灵魂,让页面活过来.与之前学的HTML5+CSS样式的不同之处就在于,JS能让静态网页成为一个动态网页,实现与用户的互动. Ja ...

  5. Javascript初学篇章_7(DOM)

    DOM 文档对象模型DOM (document object model) 文档对象模型,它定义了操作文档对象的接口.DOM 把一份html文档表示为一棵家谱树,使用parent(父), child( ...

  6. Javascript初学篇章_6(BOM)

    BOM 浏览器对象模型 BOM (浏览器对象模型),它提供了与浏览器窗口进行交互的对象 一.window对象 Window对 象表示整个浏览器窗口. 1.系统消息框 alert() alert('he ...

  7. Javascript初学篇章_2(数据类型的查看和转换/运算符)

    三.数据类型的查看和转换 1.查看数据类型 typeof 说明:typeo可以查看变量的类型. 语法:alert(typeof  变量名或数据): 2.转换成字符串 var married = fal ...

  8. Javascript并发模型和事件循环

    Javascript并发模型和事件循环 JavaScript的"并发模型"是基于事件循环的,这个并发模型有别于Java的多线程, javascript的并发是单线程的. Javas ...

  9. JavaScript学习06 JS事件对象

    JavaScript学习06 JS事件对象 事件对象:当事件发生时,浏览器自动建立该对象,并包含该事件的类型.鼠标坐标等. 事件对象的属性:格式:event.属性. 一些说明: event代表事件的状 ...

随机推荐

  1. 第二天--html

    <!DOCTYPE html><!--设置文档类型为标准的html5模型--><html>    <head>        <meta char ...

  2. brew 安装 mysql

    在网上看到各种教程,都会出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.soc ...

  3. PHP RSA参数签名

    为了防止在支付通信过程中的参数数据被篡改或者伪造,采用RSA进行数据签名和验证签名. RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. ...

  4. hosts文件权限导致监听无法启动

    1.所属系统:2.问题描述:3.解决4.参考???疑点:为什么修改主机名会使hosts文件权限发生改变 1.所属系统: ZHJS2#[/]uname -a HP-UX ZHJS2 B.11.31 U ...

  5. 通过配置web.config使WCF向外提供HTTPS的Restful Service

    如何通过WCF向外提供Restful的Service请看如下链接 http://www.cnblogs.com/mingmingruyuedlut/p/4223116.html 那么如何通过对web. ...

  6. 闲聊——浅谈前端js模块化演变

    function时代 前端这几年发展太快了,我学习的速度都跟不上演变的速度了(门派太多了,后台都是大牛公司支撑类似于facebook的react.google的angular,angular的1.0还 ...

  7. UVA 11168 Airport(凸包+直线方程)

    题意:给你n[1,10000]个点,求出一条直线,让所有的点都在都在直线的一侧并且到直线的距离总和最小,输出最小平均值(最小值除以点数) 题解:根据题意可以知道任意角度画一条直线(所有点都在一边),然 ...

  8. FragmentActivity_左右滑动的碎片

    test1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...

  9. PDA手持机 移动开单进销存系统 现场出打印凭据和扫码 新的亮点

    传统车销模式弊端:1.手写开单,效率低,动作慢2.现场手写开单明细不能打印,产品明细不规范3.电脑办公人员及车销人员对车上的库存情况掌握不清楚,销售人员对每种产品销售价格不清楚4.老板对员工工作的管控 ...

  10. 指定eclipse启动使用的JVM

    不同eclispe对运行时要求不一样,而一台电脑只能同时使用一个运行时,当多个要求不同版本jvm的eclipse需要在一台电脑工作时,需要手动指定eclipse启动使用的jvm. [eclipse-j ...