JavaScript学习笔记——事件
javascript事件基础和事件绑定
一、事件驱动
1.事件
javascript侦测到的用户的操作或是页面的一些行为(怎么发生的)
2.事件源
引发事件的元素。(发生在谁的身上)
3.事件处理程序
对事件处理的程序或是函数 (发生了什么事)
二、事件的分类
<body>
<input type="button" value="改变" id="one" > </body>
1.鼠标事件
onclick
var one=document.getElementById("one");
one.onclick=function () {
alert("点击");
}
var one=document.getElementById("one");
one.onclick=aa;
alert(aa)
function aa () {
alert("点击");
}
ondblclick
onmousedowm
onmouseup
onmousemove
onmouseover
onmouseout
2.键盘事件
onkeyup
onkeydown
onkeypress 鼠标按下或按住
3.表单事件
onsubmit
onblur
onfoucs
onchange
4.页面事件
onload
onunload
onbeforeunload
三、如何绑定事件
1.在脚本中绑定
2.直接在HTML元素绑定
3.<script for="two" event="onclick">
alert("我是DIV2");
</script>
四、同一个事件绑定多个事件处理程序
1.自己写的
2.IE:
对象.attachEvent("事件(on)","处理程序") 添加
对象.dettachEvent("事件(on)","处理程序") 删除
one.attachEvent("onclick",aa);
one.attachEvent("onclick",bb);
function aa () {
alert("aa");
}
function bb() {
alert("bb");
}
one.detachEvent("onclick",bb)
one.attachEvent("onclick",function () {
alert("cc");
});
one.detachEvent("onclick",function () {
alert("cc");
});
FF:
对象.addEventListener("事件","处理程序",布尔值) 添加
对象.removeEventListener("事件","处理程序",布尔值) 删除
one.addEventListener("click",bb,false)
one.addEventListener("click",aa,false)
one.addEventListener("click",function () {
alert("cc");
},false)
one.removeEventListener("click",function () {
alert("cc");
},false)
function aa () {
alert("aa");
}
function bb() {
alert("bb");
}
Mozilla中:
addEventListener的使用方式:
target.addEventListener(type, listener, useCapture);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。
useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false);
IE中:
target.attachEvent(type, listener);
target: 文档节点、document、window 或 XMLHttpRequest。
type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。
listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});
javascript事件对象实例讲解
一、事件对象
用来记录一些事件发生时的相关的信息的对象
1.只有当事件发生的时候才产生,只能在处理函数内部访问
2.处理函数运行结束后自动销毁。
二、如何获取事件对象
IE:window.event
FF:
对象.on事件=function (e){}
三、事件对象的属性
1.关于鼠标事件的事件对象
相对于浏览器位置的
clientX 当鼠标事件发生的时候,鼠标相对于浏览器X轴的位置
clientY 当鼠标事件发生的时候,鼠标相对于浏览器Y轴的位置
相对于屏幕位置的
screenX 当鼠标事件发生的时候,鼠标相对于屏幕X轴的位置
screenY 当鼠标事件发生的时候,鼠标相对于屏幕Y轴的位置
document.onmousemove=function (e) {
var ev=e||window.event;
var cx=ev.clientX;
var cy=ev.clientY;
var sx=ev.screenX;
var sy=ev.screenY;
div1.innerHTML="cx:"+cx+"--cy:"+cy+"<br/>sx:"+sx+"--sy:"+sy;
}
相对于事件源的位置
IE:
offsetX 当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
offsetY
FF:
layerX 当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
laterY
div1.onclick=function (e) {
var ev=e||window.event;
var ox=ev.offsetX ||ev.layerX;
var oy=ev.offsetY ||ev.layerY;
div1.innerHTML="ox:"+ox+"--oy:"+oy;
}
2.关于键盘事件的事件对象
keyCode 获得键盘码
空格:32 回车13 左上右下:37 38 39 40
altKey 判断alt键是否被按下 按下是true 反之是false 布尔值
document.body.onkeydown=function (e) {
var ev=e||window.event;
alert(ev.keyCode)
alert(ev.altKey)
alert(ev.type)
}
ctrlKey
shiftKey
type 用来检测事件的类型 主要是用于多个事件通用一个事件处理程序的时候
javascript事件流讲解和实例应用
当页面元素触发事件的时候,该元素的容器以及整个页面都会按照特定
顺序相应该元素的触发事件,事件传播的顺序叫做事件流程。
一、事件流的分类
1.冒泡型事件(所有的浏览器都支持)
由明确的事件源到最不确定的事件源依次向上触发。
2.捕获型事件(IE不支持 w3c标准 火狐)
不确定的事件源到明确的事件源一次向下触发。
addEventListener(事件,处理函数,false)
addEventListener(事件,处理函数,true)
二、阻止事件流
IE:
事件对象.cancelBubble=true;
FF:
事件对象.stopPropagation();
三、目标事件源的对象
IE:事件对象.srcElement
FF:事件对象.target
JavaScript学习笔记——事件的更多相关文章
- 8. JavaScript学习笔记——事件
8. 事件 8.1 事件基础 /// 事件就是用户或浏览器自身执行的某种动作.诸如 click.load 和 mouseover,都是事件的名字.而响应某个事件的函数就叫做事件处理程序(或事件侦听器) ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- Javascript学习笔记四——操作表单
Javascript学习笔记 大多网页比如腾讯,百度云之类的需要登陆,用户输入账号密码就可以登陆,那么浏览器是如何获取用户的输入的呢?今天就记录一下操作表单. 操作表单与操作DOM是差不多的,表单本身 ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
随机推荐
- node.js-概念
官方网站:http://nodejs.cn/ 1.Node 是一个服务器端 JavaScript 解释器,可是真的以为JavaScript不错的同学学习Node就能轻松拿下,那么你就错了,总结:水深不 ...
- Java多线程有哪几种实现方式? Java中的类如何保证线程安全? 请说明ThreadLocal的用法和适用场景
java的同步机制,大概是通过:1.synchronized:2.Object方法中的wait,notify:3.ThreadLocal机制来实现的, 其中synchronized有两种用法:1.对类 ...
- block的使用
转载自:http://mobile.51cto.com/hot-403897.htm 一.概述 Block是C级别的语法和运行时特性.Block比较类似C函数,但是Block比之C函数,其灵活性体现在 ...
- UITableView的cell重用优化
三种情况,四种方法: 情况一:加载xib中描述的cell 情况二:加载纯代码自定义的cell 情况三:加载storyBoard中的tableView内的cell 针对于情况一: // 导入自定义cel ...
- Torch7的安装
Torch7 是一个科学计算框架,支持机器学习算法.易用而且提供高效的算法实现,得益于 LuaJIT 和一个底层的 C 实现. 提供: 一个强大的 N 维数组 提供大量索引.切片和置换的程序 通过 L ...
- 【windows】跑大型程序时不要休眠和睡眠
win10系统. 为了节能,长时间没有操作操作系统会自动进入休眠模式. 先前设定了"控制面板\硬件和声音\电源选项\编辑计划设置",都设定为"从不",结果不起作 ...
- 【poj1041】 John's trip
http://poj.org/problem?id=1041 (题目链接) 题意 给出一张无向图,求字典序最小欧拉回路. Solution 这鬼畜的输入是什么心态啊mdzz,这里用vector储存边, ...
- bzoj1121: [POI2008]激光发射器SZK
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- Visual Studio 2015 未响应/已停止工作的问题解决
在我把之前项目从10版本升级到15版本的时候,一打开转换的项目过几分钟立马卡死,出现未响应/已停止工作的问题,我试过了很多方法: 1.升级操作系统,8.1升级10,没用! 2.重装VS,没用! 3.卸 ...
- POJ2699 The Maximum Number of Strong Kings
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2102 Accepted: 975 Description A tour ...