JavaScript  event对象整理及详细介绍


Posted in Javascript onOctober 10, 2016

Event属性和方法:

1. type:事件的类型,如onlick中的click;

2. srcElement/target:事件源,就是发生事件的元素;

3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中 0代表左键,1代表中间键,2代表右键)

4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上
document.body.scrollLeft和 document.body.scrollTop)

5. offsetX,offsetY/layerX,layerY:事件发生的时候,鼠标相对于源元素左上角的位置(这一定要定义position:relative;,值 可以是fixed absolute relative这几种);

6. x,y/pageX,pageY:检索相对于父要素鼠标水平坐标的整数;

7. altKey,ctrlKey,shiftKey等:返回一个布尔值;

8. keyCode:返回keydown何keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符;(firefox2不支持 event.keycode,可以用 event.which替代 )

9. fromElement,toElement:前者是指代mouseover事件中鼠标移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素;

上面支持IE

下面的支持firefox:

event.relatedTarget;去那里
从那里来用event.srcElement || event.target

10. cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到(捕获)包容层次的元素;(e.cancelBubble = true; 相当于 e.stopPropagation();)

11. returnValue:一个布尔属性,设置为false的时候可以组织浏览器执行默认的事件动作;(e.returnValue = false; 相当于 e.preventDefault();)

12. attachEvent(),detachEvent()/addEventListener(),removeEventListener:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在
attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素;

13. screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;

HTML DOM innerheight、innerwidth 属性

定义和用法

只读属性,声明了窗口的文档显示区的高度和宽度,以像素计。

这里的宽度和高度不包括菜单栏、工具栏以及滚动条等的高度。

IE 不支持这些属性。它用 document.documentElement 或 document.body (与 IE 的版本相关)的 clientWidth 和 clientHeight 属性作为替代。

Window 对象

所有浏览器都支持 window 对象。它表示浏览器窗口。

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

全局变量是 window 对象的属性。

全局函数是 window 对象的方法。

甚至 HTML DOM 的 document 也是 window 对象的属性之一:

window.document.getElementById("header");

与此相同:

document.getElementById("header");

浏览器对象模型 (BOM)

浏览器对象模型(Browser Object Model)尚无正式标准。

Window 尺寸

有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)。

对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
    - window.innerHeight - 浏览器窗口的内部高度
    - window.innerWidth - 浏览器窗口的内部宽度

对于 Internet Explorer 8、7、6、5:
    - document.documentElement.clientHeight
    - document.documentElement.clientWidth

或者
    - document.body.clientHeight
    - document.body.clientWidth

实用的 JavaScript 方案(涵盖所有浏览器):

实例

var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;

var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;

亲自试一试

该例显示浏览器窗口的高度和宽度:(不包括工具栏/滚动条)

Object 对象

Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。因为 ECMAScript 中的 Object 对象与 Java 中的 java.lang.Object 相似,ECMAScript 中的所有对象都由这个对象继承而来,Object 对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。

Object 对象具有下列属性:

constructor

对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。

Prototype

对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。

Object 对象还具有几个方法:

hasOwnProperty(property)

判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name"))

IsPrototypeOf(object)

判断该对象是否为另一个对象的原型。

PropertyIsEnumerable

判断给定的属性是否可以用 for...in 语句进行枚举。

ToString()

返回对象的原始字符串表示。对于 Object 对象,ECMA-262 没有定义这个值,所以不同的 ECMAScript 实现具有不同的值。

ValueOf()

返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。

注释:上面列出的每种属性和方法都会被其他对象覆盖。

一些说明:

1.  event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等;

2.  event对象只在事件发生的过程中才有效。

firefox里的event跟IE里的不同,IE里的是全局变量,随时可用;firefox里的要用参数引导才能用,是运行时的临时变量。

在IE/Opera中是window.event,在Firefox中是event;而事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,Opera中两者都可用。

3.  下面两句效果相同

var evt = (evt) ? evt : ((window.event) ? window.event : null);

var evt = evt || window.event; // firefox下window.event为null, IE下event为null

4.  IE中事件的起泡

IE中事件可以沿着包容层次一点点起泡到上层,也就是说,下层的DOM节点定义的事件处理函数,到了上层的节点如果还有和下层相同事件类型的事件处理函数,那么上层的事件处理函数也会执行。例如, div 标签包含了 a ,如果这两个标签都有onclick事件的处理函数,那么执行的情况就是先执行标签 a 的onclick事件处理函数,再执行 div 的事件处理函数。如果希望的事件处理函数执行完毕之后,不希望执行上层的 div 的onclick的事件处理函数了,那么就把cancelBubble设置为true即可。

var s=+newDate();

解释如下:=+是不存在的;

+new Date()是一个东西;

+相当于.valueOf();

看到回复补充一下.getTime()这个也是得到毫秒数

//4个结果一样返回当前时间的毫秒数
alert(+new Date());
alert(+new Date);
var s=new Date();
alert(s.valueOf());
alert(s.getTime());

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript方法和技巧大全
Dec 27 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
在JavaScript中处理字符串之link()方法的使用
Jun 08 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
jQuery基本选择器之标签名选择器
Sep 03 Javascript
JavaScript定义函数_动力节点Java学院整理
Jun 27 Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 Javascript
Vue项目中使用Vux的安装过程
May 01 Javascript
使用JavaScript实现node.js中的path.join方法
Aug 12 Javascript
RequireJS用法简单示例
Aug 20 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
微信小程序中为什么使用var that=this
Aug 27 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 #Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 #Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 #Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
Oct 10 #Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 #Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 #Javascript
jQuery继承extend用法详解
Oct 10 #Javascript
You might like
常用星际术语索引(新手指南)
2020/03/04 星际争霸
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
简单实现php上传文件功能
2017/09/21 PHP
jQuery列表拖动排列具体实现
2013/11/04 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
HTML的select控件美化
2017/03/27 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python实现修改IE注册表功能示例
2018/05/10 Python
django框架模板语言使用方法详解
2019/07/18 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
python模块如何查看
2020/06/16 Python
python爬虫基础之urllib的使用
2020/12/31 Python
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
出纳岗位职责范本
2013/12/01 职场文书
四个太阳教学反思
2014/02/01 职场文书
小学教师培训感言
2014/02/11 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
入股协议书
2014/04/14 职场文书
学期评语大全
2014/04/30 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
学生安全责任书范本
2014/07/24 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
建国大业观后感600字
2015/06/01 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书