代码改变世界

事件监听2

2015-09-11 19:29  孤独大兔子  阅读(210)  评论(0编辑  收藏  举报

之前学的好多都忘记了,等有时间重新在学习一边

事件类型可分为几种:鼠标事件、键盘事件、HTML事件,这些事件都要加on(和jq不同,jq都不加on)

鼠标事件:

onclick    //单击
ondblclick //双击
onmousedown  //按下还没弹起的时候
onmouseup   //按下离开的时候
onmouseover  //移动到
onmouseout   //移动出
onmousemove  //在元素上移动的时候

键盘事件:

onkeydown  //按下任意键触发,按下不动会一直触发,直接使用
onkeypress //按下字符键触发
onkeyup    //释放键盘的时候

HTML事件:

onload    //页面加载后触发
onunload  //当页面卸载(第二次刷新后)
onselect          //当选择文本框,选择字符的时候触发
onchange          //改变的时候
onfocus         //获得焦点的时候
onblur           //失去焦点的时候
onsubmit         //点击提交按钮在<form>元素上触发
onreset          //点击重置按钮在<form>元素上触发
onresize          //当窗口或框架大小变化时在window或框架上触发
onscroll         //当用户滚动带滚动条的元素时触发

DOM和IE的区别:
1)获取目标:
  IE:   var oTarget = oEvent.srcElement;
  DOM:  var oTarget = oEvent.target;
2)获取字符代码;(在键盘事件中)
  IE:   var iCharCode = oEvent.keyCode;
  DOM:  var iCharCode = oEvent.charCode;
3)阻止默认行为,例如:<a href="xxx" onclick="" >aa</a>或者鼠标右键行为.
  IE:   oEvent.returnValue = false;
  DOM:  oEvent.preventDefault();

例如:阻止右键行为:

document.oncontextmenu = function(e){
  return false;
}

4)停止冒泡事件流
  IE:   oEvent.cancelBubble = true;
  DOM:  oEvent.stopPropagation();

事件对象,一般称为event对象,这个对象是浏览器通过函数把这个对象做为参数传递过来的

如果是事件处理函数绑定的函数,浏览器会默认传递一个参数,这个参数就是event对象

试验:

document.onclick=function(){
  alert(arguments.length);          //打印1
}
document.onclick=function(){
    alert(arguments[0]);           //打印他的内容,显示为 object MouseEvent
}
document.onkeydown=function(event){
        alert(event)
}                                              //object KeyboardEvent   //ie不支持

所以兼容写法就是把传递过来的参数写成

var e=event||window.event; 

反正这里通过传递过来的参数可以获取很多东西,鼠标右键、中间的键、按下的键盘键值.....而且都对应的键值

而且e属性,不敢细想,先写到这里,改天在写