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) //undefinedconsole.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() //常用方式,标准浏览器。不支持iee.cancelBubble=true; //不支持iereturn false //不支持iewindow.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 ...
随机推荐
- Comparable和Comparator的使用
1:对象实现Comparable, 那么对象就具有了比较功能 package comparableAndComparator; import java.util.Collections; import ...
- 百度编辑器UEditor源码模式下过滤div/style等html标签
UEditor在html代码模式下,当输入带有<div style="">.<iframe>这类带有html标签的内容时,切换为编辑器模式后,会发现输入的内 ...
- 轮廓的查找、表达、绘制、特性及匹配(How to Use Contour? Find, Component, Construct, Features & Match)
http://www.cnblogs.com/xrwang/archive/2010/02/09/HowToUseContour.html 作者:王先荣 前言 轮廓是构成任何一个形状的边界或外形 ...
- 大神的博客地址liferay
http://www.huqiwen.com/category/technology-share/liferay/
- 7zip
1.下载地址. https://www.7-zip.org/ 2.傻瓜式安装.
- 远程桌面时出现身份验证错误,要求的函数不正确,这可能是由于CredSSP加密Oracle修正
问题如下: 那么解决办法如下:
- C/S模型之TCP群聊
说明:利用TCP协议和多线程实现群聊功能.一个服务器,多个客户端(同一个程序多次启动).客户端向服务端发送数据,由服务端进行转发到其他客户端. /服务端 // WSASever.cpp : 定义控制台 ...
- lnmp之mysql5.5.17安装
先执行命令yum install cmake mysql5.5采用的是cmake安装(更先进的configure) wget下载目录(到清华大学的镜像站下载) [root@localhost loca ...
- ACM数论之旅10---大组合数-卢卡斯定理(在下卢卡斯,你是我的Master吗?(。-`ω´-) )
记得前几章的组合数吧 我们学了O(n^2)的做法,加上逆元,我们又会了O(n)的做法 现在来了新问题,如果n和m很大呢, 比如求C(n, m) % p , n<=1e18,m<=1e18 ...
- byte、二进制、十进制数值之间的转换
项目中遇到将字节数据文件解析成可展示的十进制,经过调查和测试得出下面的转换方法 1.将byte值转换为二进制字符串: byte byteValue = -1; // 将byte转换为8位二进制字符串 ...