js函数事件对象
每个函数都有4个默认对象
arguments 保存着实际传入的参数,集合列表
return 有两个功能,打断函数和返回函数值
this 谁调用的函数,this就是谁
event 事件对象
事件
box.onlick=function(){}
表示点击 box 触发了一个函数。
事件包含三点:
1 谁触发的
2 触发了什么事件
3 触发的事件执行了什么动作 焦点事件: 使浏览器能区分用户输入的对象。
当一个元素有焦点的时候可以接受用户输入。
不是所有元素都有焦点,能响应用户输入的才有焦点。
onfocus 当元素获得焦点时。
onblur 当元素失去焦点时。 文本域的空白符会被识别。
选中: obj.select();
obj 文本域 textarea ,支持 select ,但比如 p 标签不支持。
事件对象 event 对象
当一个事件发生的时候和当前事件发生有关的详细信息,都会被临时保存在一个指定的地方。
event 对象,供我们需要时调用。像飞机的黑匣子。 当在页面上发生了某事件的时候,会被事件对象记录。
window.onclick= function (e){ console.log(e) //MouseEvent {isTrusted: true…} } |
事件对象的兼容处理
e=event||window.event;
ie/谷歌中: event 是一个内置的全局对象。
标准下: 事件对象是通过事件函数的第一个参数传入的。
window.onclick= function (e,f){ //var f; console.log(f) //undefined } |
没有事件发生:输出 undefined
console.log(window.event) //undefined console.log(event) //undefined |
形式参数和实际参数
形式参数:
相当于在函数内定义一个局部变量。 如果一个函数是被事件调用的,这个函数定义的第一个参数就是事件对象。 arguments[0] 实际参数的第一个值。
window.onclick= function (e){ console.log(arguments[0]) //MouseEvent {isTrusted: true, screenX: 1027…} } |
没有事件调用时: fn(1,2) 输出3
function fn(a,b){ console.log(a+b) //3 } fn(1,2) |
有事件调用时: 还是输出3
function fn(a,b){ console.log( this ) //window // console.log(a+b) //3 } window.onclick= function (){ fn(1,2) //3 } |
clientX: number
clientY: number
当一件事件发生的时候,鼠标到页面的可视距离 onmousemove 当鼠标移动的时候
当鼠标在一个元素上移动的时候触发。触发频率不是像素,而是时间间隔。
在一个指定的时间内,如果鼠标位置和上次的位置发生变化,就会触发。 onmousedown 鼠标按下。
onmouseup 鼠标抬起。 onclick 是按下再抬起。 onmouseover 是鼠标移上时触发的事件。
onmouseout 是鼠标移出的时候触发事情。
事件冒泡
当一个元素接收到事件的时候,会把接收的所有传递父级。一直到顶层的 window 对象。
< div id = "d1" > < div id = "d2" > < div id = "d3" ></ div > </ div > </ div > |
点击d3时会把事件传到d2、d1。如果大家都有点击事件时,点击d3,会相当于全部都点击了。
如果d1、d2没有点击事件时,其实点击事件也是冒泡到其身上的,只是没有执行。 阻止事件冒泡:
e.stopPropagation() //常用方式,标准浏览器。不支持ie e.cancelBubble= true ; //不支持ie return false //不支持ie window.cancelBubble= true ; //谷歌、ie |
阻止事件冒泡兼容
e=event||window.event; e.cancelBubble= true ; e.stopPropagation(); |
例如:
box.onclick= function (ev){ var e=ev||window.event; alert( "我是box2" ); e.cancelBubble= true ; e.stopPropagation(); } |
默认事件
浏览器本身会存在一些默认事件,比如鼠标右键的菜单。
阻止默认事件:
如果不阻止,点击鼠标右键时首先会弹出1,再弹右键菜单。
阻止后不弹出右键菜单。
document.oncontextmenu= function (ev){ var e=ev||window.event; e.returnValue= false ; //ie中 e.preventDefault(); alert(1) } |
键盘事件
onkeydow 当按下键盘的时候。
js函数事件对象的更多相关文章
- JS键盘事件对象之keyCode、charCode、which属性对比
先说一些有关键盘事件的事项:用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown. onkeypress和onkeyup这 ...
- js event事件对象概括
事件是用户或者浏览器自身执行的动作,而响应某个事件的函数就叫做事件处理程序或者叫事件侦听器. 定义事件处理程序可以大致分为以下三种: 一.html事件处理程序 元素支持的每种事件都可以用一个与之对应的 ...
- JS函数和对象(一)
在本文章中,将对JS中的函数和对象进行一些讲解,不对之处还请之处 一.JS中的函数 1.1无参函数 其形式如下代码所示 function box(){ alert("我是一个函数,只有被调用 ...
- node js 函数和对象
1.函数 1.1匿名函数 函数声明 function fn(){ } 函数表达式 var fun=function(){ } 函数名称和函数名称()的区别 fun/fn fun()/fn() ...
- 深入理解js——函数和对象的关系
函数也是对象,但是函数却不像数组--数组是对象的一种,它是对象的一个子集.函数和数组之间不是单纯的包含与被包含的关系,它们之间有点像鸡生蛋蛋生鸡的逻辑. 来例子:function Fn(){ this ...
- Js高级 事件 对象
1.事件 浏览器客户端上客户触发的行为都成为事件 所有的事件都是天生自带的,不需要我们我去绑定,只需要我们去触发. 通过obj.事件名=function(){} 事件名:onmouseover onm ...
- 2-4 js基础-事件对象小结
var e=ev||event; e.cancelBubble=true; document.documentElement html document.body ...
- JS函数和对象
1.函数 isNaN(数据)/parseInt/parseFloat/Number/prompt... 函数分为系统函数和自定义函数 function: 功能体,函数(方法),可以接受若干个数据,返回 ...
- JS 事件对象和事件冒泡
1.事件对象 js的事件对象中保存了当前被触发事件的一些相关的属性信息,如事件源.事件发生时的鼠标位置.事件按键等. 事件对象的获取方法: IE中可以window.event直接获取,而Firefox ...
随机推荐
- 003-redis-命令-key操作,字符串操作
Redis 键(key) Redis 键命令用于管理 redis 的键. 序号 命令及描述 1 DEL key该命令用于在 key 存在时删除 key. 2 DUMP key 序列化给定 key ,并 ...
- 003-spring cloud gateway-概述、Route模型、网关初始化配置过程、基本原理
一.概述 网关服务核心是将进入的请求正确合理的路由到下层具体的服务进行业务处理,由此可见网关服务的核心就是路由信息的构建. Spring Cloud Gateway旨在提供一种简单而有效的方式来路由到 ...
- 安装HDF5及在VS下配置HDF5
最近要用到HDF5来存储数据,想要安装尝试用一下.发现网上有两种安装方式,一种是obtain518.html:获取最新的HDF5-1.8软件;另一种是cmakebuild518.html:使用CMAK ...
- 实习培训——Servlet(5)
实习培训——Servlet(5) 1 Servlet 简介 Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HT ...
- 包管理 ----- Linux操作系统rpm包安装方式步骤
Linux操作系统rpm包安装方式步骤 2016年08月04日 07:00:26 阅读数:17140 转自 : http://os.51cto.com/art/201003/186467.htm 特别 ...
- [LeetCode] 261. Graph Valid Tree _ Medium tag: BFS
Given n nodes labeled from 0 to n-1 and a list of undirected edges (each edge is a pair of nodes), w ...
- QLabel 文本内容自动换行显示
需要把QLabel的WordWrap属性设置成TRUE,可以通过界面设置,也可以通过程序设置
- 一个新人对HTML的理解
首先 HTML里面包含的东西是什么? 在HTML里面 注释的表示方式是 <!--注释内容--> 注释 HTML初始默认包含了两大部分: 一部分是 <head>< ...
- SQL Server 将查询结果导出插入(insert)语句的简单方式
转自 http://blog.csdn.net/danny_style/article/details/45166391 1.首先将查询结果添加到一个原数据库中不存在的表,表名随意命名. 例:SELE ...
- SVA描述(一)
SystemVerilog Assertion(SVA):是一种描述性的语言,可以很容易的描述时序相关的情况,所以主要用在协议检查和协议覆盖.SVA在systemverilog仿真器中的 调度区间在R ...