• 事件


    事件模式:

    冒泡:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>冒泡型事件</title>
    <script language="javascript">
    function add(sText){
        var oDiv = document.getElementById("display");
        oDiv.innerHTML += sText;    //输出点击顺序
    }
    </script>
    </head>
    
    <body onclick="add('body<br>');">
        <div onclick="add('div<br>');">
            <p onclick="add('p<br>');">Click Me</p>
        </div>
        <div id="display"></div>
    </body>
    </html>

    顺序执行:p->div->body->document

    捕获:

    ie浏览器不支持

    事件监听:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>监听函数</title>
    <script language="javascript">
    window.onload = function(){
        var oP = document.getElementById("myP");    //找到对象
        oP.onclick = function(){                    //设置事件监听函数
            alert('我被点击了');
        }
    }
    </script>
    </head>
    
    <body>
        <div>
            <p id="myP">Click Me</p>
        </div>
    </body>
    </html>

    ie:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>IE的监听函数</title>
    <script language="javascript">
    function fnClick(){
        alert("我被点击了");
        oP.detachEvent("onclick",fnClick);        //点击了一次后删除监听函数
    }
    var oP;
    window.onload = function(){
        oP = document.getElementById("myP");    //找到对象
        oP.attachEvent("onclick",fnClick);        //添加监听函数
    }
    </script>
    </head>
    
    <body>
        <div>
            <p id="myP">Click Me</p>
        </div>
    </body>
    </html>

    ff:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>标准DOM的事件监听</title>
    <script language="javascript">
    function fnClick1(){
        alert("我被fnClick1点击了");
        //oP.removeEventListener("click",fnClick2,false);        //删除监听函数2
    }
    function fnClick2(){
        alert("我被fnClick2点击了");
    }
    var oP;
    window.onload = function(){
        oP = document.getElementById("myP");    //找到对象
        oP.addEventListener("click",fnClick1,false);        //添加监听函数1
        oP.addEventListener("click",fnClick2,false);        //添加监听函数2
    }
    </script>
    </head>
    
    <body>
        <div>
            <p id="myP">Click Me</p>
        </div>
    </body>
    </html>

    事件对象:

    IE浏览器中事件对象是window对象的一个属性event

     oP.onclick = function(){                    

            var oEvent=window.event;
        }
    DOM 中规定event对象必须作为唯一的参数传给事件处理函数
    oP.onclick = function(oEvent)
    {}

    为了兼容两种浏览器,通常采用下边的方法:
    oP.onclick = function(oEvent)
    {
    if(window.event)oEvent=window.event;
    }
    事件类型:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>事件的类型</title>
    <script language="javascript">
    function handle(oEvent){
        var oDiv = document.getElementById("display");
        if(window.event) oEvent = window.event;        //处理兼容性,获得事件对象
        if(oEvent.type == "click")                    //检测事件名称
            oDiv.innerHTML += "你点击了我&nbsp&nbsp;";
        else if( oEvent.type == "mouseover")
            oDiv.innerHTML += "你移动到我上方了&nbsp&nbsp;";
            
    }
    window.onload = function(){
        var oImg = document.getElementsByTagName("img")[0];
        oImg.onclick = handle;
        oImg.onmouseover = handle;
    }
    </script>
    </head>
    
    <body>
        <img src="01.jpg" border="0">
        <div id="display"></div>
    </body>
    </html>


  • 相关阅读:
    mysql数据库的test类型
    jvm虚拟机分享课笔记
    内存模型中没有gc的是哪个
    jvm内存模型中-栈,方法区,程序计数器是线程安全的
    Random.nextInt()替换Math.random()
    异常抛出注意点
    缓存好文章
    java 实现serialVersionUID
    什么叫反向代理什么叫正向代理
    mysql count与sum的区别
  • 原文地址:https://www.cnblogs.com/flashweb/p/2883431.html
Copyright © 2020-2023  润新知