zoukankan      html  css  js  c++  java
  • JavaScript学习笔记——事件

    javascript事件基础和事件绑定

    一、事件驱动
    1.事件
      javascript侦测到的用户的操作或是页面的一些行为(怎么发生的)
    2.事件源
      引发事件的元素。(发生在谁的身上)
    3.事件处理程序
      对事件处理的程序或是函数 (发生了什么事)

    二、事件的分类

    <body>
    <input type="button" value="改变" id="one" >
    
    </body>

    1.鼠标事件

    onclick

        var one=document.getElementById("one");
        one.onclick=function  () {
          alert("点击");
        }
        var one=document.getElementById("one");
    
    one.onclick=aa;
    alert(aa)
    function aa () {
      alert("点击");
    }

    ondblclick

    onmousedowm
    onmouseup
    onmousemove
    onmouseover
    onmouseout

    2.键盘事件
    onkeyup
    onkeydown
    onkeypress 鼠标按下或按住

    3.表单事件
    onsubmit
    onblur
    onfoucs
    onchange

    4.页面事件
    onload
    onunload
    onbeforeunload

    三、如何绑定事件

    1.在脚本中绑定
    2.直接在HTML元素绑定
    3.<script for="two" event="onclick">
    alert("我是DIV2");
    </script>


    四、同一个事件绑定多个事件处理程序

    1.自己写的
    2.IE:
    对象.attachEvent("事件(on)","处理程序")    添加
    对象.dettachEvent("事件(on)","处理程序")    删除

       one.attachEvent("onclick",aa);
       one.attachEvent("onclick",bb);
       function aa () {
          alert("aa");
       }
          function bb() {
          alert("bb");
       }
    
       one.detachEvent("onclick",bb)
       one.attachEvent("onclick",function  () {
        alert("cc");
       });
          one.detachEvent("onclick",function  () {
        alert("cc");
       });

    FF:
    对象.addEventListener("事件","处理程序",布尔值)    添加
    对象.removeEventListener("事件","处理程序",布尔值)    删除

    one.addEventListener("click",bb,false)
      one.addEventListener("click",aa,false)
       one.addEventListener("click",function  () {
         alert("cc");
       },false)
        one.removeEventListener("click",function  () {
         alert("cc");
       },false)
     function aa () {
          alert("aa");
       }
         function bb() {
          alert("bb");
       }


    Mozilla中: 

    addEventListener的使用方式: 

    target.addEventListener(type, listener, useCapture); 

    target: 文档节点、document、window 或 XMLHttpRequest。 
    type: 字符串,事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等。 
    listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 
    useCapture是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false); 

    IE中: 

    target.attachEvent(type, listener); 
    target: 文档节点、document、window 或 XMLHttpRequest。 
    type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。 
    listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 例如:document.getElementById("txt").attachEvent("onclick",function(event){alert(event.keyCode);});  

    javascript事件对象实例讲解

    一、事件对象
    用来记录一些事件发生时的相关的信息的对象
    1.只有当事件发生的时候才产生,只能在处理函数内部访问

    2.处理函数运行结束后自动销毁。

    二、如何获取事件对象

    IE:window.event

    FF:
    对象.on事件=function (e){}



    三、事件对象的属性

    1.关于鼠标事件的事件对象

    相对于浏览器位置的
    clientX 当鼠标事件发生的时候,鼠标相对于浏览器X轴的位置
    clientY 当鼠标事件发生的时候,鼠标相对于浏览器Y轴的位置

    相对于屏幕位置的
    screenX 当鼠标事件发生的时候,鼠标相对于屏幕X轴的位置
    screenY 当鼠标事件发生的时候,鼠标相对于屏幕Y轴的位置

         document.onmousemove=function  (e) {
           var ev=e||window.event;
           var cx=ev.clientX;
           var cy=ev.clientY;
           var sx=ev.screenX;
           var sy=ev.screenY;
           div1.innerHTML="cx:"+cx+"--cy:"+cy+"<br/>sx:"+sx+"--sy:"+sy;
         }    

    相对于事件源的位置
    IE:
    offsetX 当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
    offsetY

    FF:
    layerX 当鼠标事件发生的时候,鼠标相对于事件源X轴的位置
    laterY

        div1.onclick=function  (e) {
          var ev=e||window.event;
          var ox=ev.offsetX ||ev.layerX;
          var oy=ev.offsetY ||ev.layerY;
        div1.innerHTML="ox:"+ox+"--oy:"+oy;
        }

    2.关于键盘事件的事件对象

      keyCode 获得键盘码
        空格:32 回车13 左上右下:37 38 39 40


      altKey 判断alt键是否被按下 按下是true 反之是false 布尔值

         document.body.onkeydown=function  (e) {
           var ev=e||window.event;
           alert(ev.keyCode)
           alert(ev.altKey)
           alert(ev.type)
         }

    ctrlKey
    shiftKey
    type 用来检测事件的类型 主要是用于多个事件通用一个事件处理程序的时候

    javascript事件流讲解和实例应用

    当页面元素触发事件的时候,该元素的容器以及整个页面都会按照特定
    顺序相应该元素的触发事件,事件传播的顺序叫做事件流程。

    一、事件流的分类

      1.冒泡型事件(所有的浏览器都支持)
        由明确的事件源到最不确定的事件源依次向上触发。

      2.捕获型事件(IE不支持 w3c标准 火狐)
        不确定的事件源到明确的事件源一次向下触发。
        addEventListener(事件,处理函数,false)
        addEventListener(事件,处理函数,true)

    二、阻止事件流
      IE:
        事件对象.cancelBubble=true;
      FF:
        事件对象.stopPropagation();

    三、目标事件源的对象
      IE:事件对象.srcElement
      FF:事件对象.target





  • 相关阅读:
    0基础培训Web前端2个月实习一个月4000?
    amazon kindle和kindle阅读
    手动双面打印
    一分价钱一分货
    【转】cocos2d-x 开发中使用的一些工具
    怎么做网线,网线水晶头接法和线序(图文详解)
    schedule
    Match+Faq
    【转】以XML文件方式保存用户数据——2013-08-25 22
    【转】针对iOS VS. Android开发游戏的优劣——2013-08-25 17
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/4743923.html
Copyright © 2011-2022 走看看