event事件

  event概念及作用

在触发DOM上某个事件时,会产生一个事件对象event,这个对象包含着所有事件相   关的信息,包含导致事件的元素,事件的类型以及其他的与特定事件相关的信息。

它是事件绑定中的一个隐藏的参数,可以通过arguments[0]来获取

也可以叫事件源对象,这里面包含了关于这次事件的相关信息

  获取方式(兼容问题)

在W3C标准中,直接在函数中声明该参数即可

btn.onclick = function(event) {

//这里就可以使用了

};

 兼容性写法,支持老版本的IE

var ev = ev ? ev : window.event;

var ev = ev || window.event;

  event.button属性介绍

alert(event.button);   alert(ev.which);

//如果当前event是鼠标事件,则会有一个button属性,它是一个数字

0代表鼠标按下了左键 ||  1代表按下了滚轮  ||  2代表按下了右键

不过老版本的IE并没有遵守W3C的规范,它的button属性含义如下

onmousedown/onmouseup 

1鼠标左键 2鼠标右键 3左右同时按 4滚轮 5左键加滚轮 6右键加滚轮 7三个同时

目前IE11.0版本,无兼容性问题

  鼠标事件中获取鼠标的位置属性介绍(兼容问题)

event.clientX鼠标相对于浏览器窗口可视区域的X坐标(窗口坐标),可视区域不包括工具栏和滚动条。

event.pageX类似于event.clientX,但它们使用的是文档坐标而非窗口坐标。(ie8及以下不支持)

event.offsetX鼠标相对于事件源元素(srcElement)的X坐标。

event.screenX鼠标相对于用户显示器屏幕左上角的X,Y坐标。


3.扩展案例:表格的即时编辑

  键盘事件(keyup、keydown、keypress)

  组合键ctrlKey、altKey、shiftKey

if(event.keyCode == 13 && event.ctrlKey) {

//发送消息

}

  keyCode/which兼容

event.keyCode || event.which

alert(event.which); //IE不支持(ie8)

  事件的冒泡(事件从子节点向上依次传递给父节点)

IE 的事件流叫做事件冒泡(event bubbling) ,即事件开始时由最具体的元素(文档中嵌套   层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档) 。

  • 浏览器的默认行为

javascript中的默认行为是指javascript中事件本身具有的属性,如<a>标签可以跳转,文本框 可输入文字、字母、图片路径等,右键浏览器会出现菜单等行为便被称为浏览器的默认行为。

  • 阻止默认行为(兼容)

阻止右键菜单

document.oncontextmenu = function(){

       alert("右键被按下");

       return false;

}

ev.preventDefault(); //非IE

ev.returnValue = false;   //IE

  • 事件监听器(兼容)---事件绑定
    1. target.addEventListener("click", fun, false); --标准浏览器
    2. target.attachEvent("onclick",fun); --IE浏览器(执行顺序按照绑定的反序)
    3. removeEventListener()/detachEvent() 移除事件绑定的参数和添加事件绑定是一致的。

事件流描述的是从页面中接收事件的顺序。

    1. 可以绑定多个函数在一个对象上。
    2. 执行顺序按照绑定的顺序来(IE反向)。
    3. 第三个参数是否使用捕捉(反向冒泡),默认false,为冒泡。
  • 事件捕获
    1. 从父元素向子元素,直至触发事件元素
    2. 事件的冒泡(事件从子节点向上依次传递给父节点)

json是在JavaScript中读写结构化数据的最好的方式(xml/html);

    1. 它是一种数据格式,不是一种编程语言
    2. 但 JSON 并不从属于 JavaScript

语法组成:简单值  对象  数组。

    1. JSON与 对象有两个地方不一样
    1. 没有声明变量(JSON 中没有变量的概念)
    2. 没有末尾的分号(因为这不是 JavaScript 语句,所以不需要分号) ,对象的属性必须加双引号。
  1. 序列化的方法
    1. JSON.stringify() :把一个 JavaScript 对象序列化为一个 JSON 字符串
    2. JSON.parse() 把对应的字符串转换成json格式,注意引号。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值