zoukankan      html  css  js  c++  java
  • js中的事件:

    事件驱动:

    1.事件:js捕获用户的操作或页面中的一些行为

    2.事件源:触发事件的对象

    鼠标事件:

    onclick

    ondblclick

    onmousedown

    onmouseup

    onmousemove

    onmouseover

    onmouseout

    页面事件,撤销加载:

    onbeforeunload

    添加,删除事件具有兼容性:

    在IE中:

    添加:

    obj.attachEvent("on事件","处理程序")

    删除:

    obj.detachEvent("on事件","方法")

    谷歌等支持W3C标准的浏览器中:

    添加:

    obj.addEventListener("click",fn1,false);

    obj.removeEventListener("click",fn1,false);

    自定义对象:

    var person={

      name:"zhang"

      age:21

      }

    调用:console.log(person.name)

    示例:

        var Event = {
                add:function(obj, type, foo) {
                    if(obj.attachEvent) {
                        obj.attachEvent("on" + type, foo);
                    } else if(obj.addEventListener) {
                        obj.addEventListener(type, foo, false);
                    } else {
                        obj["on" + type] = foo;
                    }
                },
                remove:function(obj, type, foo) {
                    if(obj.detachEvent) {
                        obj.detachEvent("on" + type, foo);
                    } else if(obj.removeEventListener) {
                        obj.removeEventListener(type, foo, false);
                    } else {
                        obj["on" + type] = null;
                    }
                }
           };

    事件对象:

    bu1.onclick=function(e){

      var ev=e||window.event

      }

    鼠标相对于浏览器的位置:

    ev.ClientX(X轴)

    ev.ClientY(Y轴)

    鼠标相对于屏幕的位置:

    ev.ScreenX

    ev.ScreenY

    鼠标相对于事件源的位置:

    ev.offsetX

    ev.offsetY

    键盘事件:

    document.onkeydown=function(e){

      }

    示例:

     div2.onmousedown=function(e){
                var ev=e||window.event;
    //            事件发生时:获取到事件源的距离
                var ol=ev.offsetY;
                var al=ev.offsetX;
    
                    this.onmousemove=function(e){
                        var ev=e||window.event;
                        this.style.top=ev.clientY-ol+"px";
                        this.style.left=ev.clientX-al+"px";
                    };
                    this.onmouseup=function(){
                        this.onmousemove=null;
                    }
            };

    事件流:

    冒泡型事件:从点击处向外响应事件

    捕获型事件:从外向内响应事件

    阻止事件流:

    IE:ev.cancelBubble=true;

    其他浏览器:ev.stopPropagation

    示例:

    div3.onclick=function(e){
            var ev=e||window.event;
            console.log("我是儿子");
    //        阻止冒泡事件
            ev.stopPropagation();
     body.addEventListener("click",function(e) {
    //        var ev = e || window.event;
    //        console.log("我是body");
    //        //        阻止捕获事件
    //        ev.stopPropagation();
    //    },true);

    事件委托:

    var obj=ev.target||ev.srcElement(返回点击的对象)

     var ul=document.getElementsByTagName("ul");
        ul[0].onclick=function(e){
            var ev=e||window.event;
            var obj=ev.target||ev.srcElement;
            alert(obj.innerHTML);
    
        }
  • 相关阅读:
    javascript中,一个js中的函数,第一句var _this = this;为什么要这样做?
    Sqlserver2012 sa账户登录添加其他账户
    ios模拟器快捷键
    XCode8.3真机调试设置
    1977-1998全国历年高考状元现状
    SQL修改数据表字段长度
    微信电脑版怎么修改信息提示音
    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
    XML序列化和反序列化
    CoolFormat源代码格式化工具(转)
  • 原文地址:https://www.cnblogs.com/hongxuejiao/p/4805777.html
Copyright © 2011-2022 走看看