事件

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. cxf WebService设置wsdl中soapAction的值

    用cxf开发一个WebService很简单,只需要下面几步: 1.定义接口 public interface HelloService { String hello(); } 2.实现 public ...

  2. RecyclerView解密篇(一)

    一.前言 RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视 ...

  3. UIScrollView设置滑动的距离

    设置好scrollView.width即是控制滑动的距离, scrollView.clipsToBounds = NO;控制是否显示多出的部分(可灵活运用)

  4. C# Lamda中类似于SQL 中的 In 功能

    首先,在程序中接受一个数组 例如:int[] s=[1,2,3]; 在Lamda表达式中使用如下: db.userinfo.where(u=>s.Contains(u.id)); 等同于sql语 ...

  5. 【转】Caffe初试(九)solver及其设置

    solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 #caffe train --solver=*_solver. ...

  6. mysql主从配置

    引言: 双11,阿里云服务器打折,于是我忍不住又买了一台服务器,于是咱也是有两台服务器的爷们了,既然有了两台服务器,那么肯定要好好利用一下吧,那么就来玩玩mysql的主从配置吧. 准备 两台数据库服务 ...

  7. 【Java EE 学习 78 中】【数据采集系统第十天】【Spring远程调用】

    一.远程调用概述 1.远程调用的定义 在一个程序中就像调用本地中的方法一样调用另外一个远程程序中的方法,但是整个过程对本地完全透明,这就是远程调用.spring已经能够非常成熟的完成该项功能了. 2. ...

  8. ECMAScript 5

    2009年12月,ECMAScript 5.02011年6月,ECMAscript 5.1版发布2015年6月,ECMAScript 6正式通过,成为国际标准ES6第一个版本 ES2015,发布于20 ...

  9. EXT.NET 使用总结(2) ---TreePanel(带右键菜单,节点自定义属性)

    TreePanel(带右键菜单,节点自定义属性) 其实这个树控件也挺好用的.http://www.ztree.me/v3/main.php#_zTreeInfo html <ext:Panel ...

  10. SVN基本指令

    Svn使用: Versions: Cornerstone: 如果命令行不出来,可以设置commonsline Tools 命令行:svn heip 获取服务器端数据 svn checkout 远端ur ...