zoukankan      html  css  js  c++  java
  • 事件监听2

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

    事件类型可分为几种:鼠标事件、键盘事件、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属性,不敢细想,先写到这里,改天在写

  • 相关阅读:
    企业库应用实践系列五:创建模板引擎Library
    关于HtmlHelper:是MVC自作聪明,还是我不够明白?
    企业库应用实践系列二:对象创建原理详解
    企业库应用实践系列三:自定义构造函数
    专业导论 计算机科学概论
    企业短期项目,缺人手
    光脚丫学LINQ(040):引发未将对象引用设置到对象的实例的异常
    光脚丫学LINQ(045):如何表示计算所得列(LINQ to SQL)
    光脚丫学LINQ(042):如何将列表示为由数据库生成的列
    光脚丫学LINQ(043):为实体类的列成员指定在数据库中的数据类型
  • 原文地址:https://www.cnblogs.com/change-oneself/p/4801972.html
Copyright © 2011-2022 走看看