zoukankan      html  css  js  c++  java
  • jquery 事件注冊 与反复事件处理

    <!doctype html>
    <html lang="us">
    <head>
    <meta charset="utf-8">
    <title> test</title>
    <script src="./jquery-1.10.2.js" type="text/javascript"></script>
    <script>
    function initEvents(){
    //注冊多次事件方法初始化
    initOnEvent();
    initBindEvent();
    initClickvent();
    initLiveEvent();
    //仅仅注冊一个事件方法
    oneEventByBindUnBind();
    oneEvnetByDieLive();
    }
    function initOnEvent(){
    //为id为onWayToEvent button注冊点击事件
    $("#onWayToEvent").on("click",function(){
    alert("this is one on event")
    });
    $("#onWayToEvent").on("click",function(){
    alert("this is two on event")
    });
    $("#onWayToEvent").on("click",function(){
    alert("this is three on event")
    });
    }

    function initBindEvent(){
    //为id为bindWayToEvent 的button注冊点击事件
    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. one")
    });

    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. two")
    });

    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. three")
    });
    }

    function initClickvent(){
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. one");
    });

    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. two");
    });
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. three");
    });
    }

    function initLiveEvent(){
    $("#liveWayToEvent").live("click",function(){
    alert("this is registry event by click. one");
    });
    /*
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. two");
    });
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. three");
    });
    */
    }


    function oneEventByBindUnBind(){
     
    registryManyEvent("oneEvnetByBind");
    $("#oneEvnetByBind").unbind("click").bind("click",function(){
    alert("only you !!!!!!!");
    });

    }

    function oneEvnetByDieLive(){
    registryManyEvent("oneEvnetByDieLive");
    $("#oneEvnetByDieLive").die().live("click",function(){

    alert("the one of you !!!!!!");
    });
    }

    function registryManyEvent(id){
    $("#"+id).click(function(){
    alert("this is registry event by common. one");
    });

    $("#"+id).click(function(){
    alert("this is registry event by common. two");
    });
    $("#"+id).click(function(){
    alert("this is registry event by common. three");
    });
    }

    </script>
    <style>
     
    .info{
    100%;
    height:auto;
    float:auto;
    margin:10px;
    }
     
    </style>
     
    </head>
    <body onload="initEvents()">


    <h1>Welcome to jquery registry event test</h1>
    <button id="onWayToEvent" >通过on的方式多次注冊事件</button>  </br>
    <div class="info">
    通过 on方法注冊的事件,每次的注冊不会把原来的方法覆盖掉。

    会以队列的形式保存起来
    点击的时候,触发事情会一个个按注冊的顺序运行。


    主要代码:
    function initOnEvent(){
    //为id为onWayToEvent button注冊点击事件
    $("#onWayToEvent").on("click",function(){
    alert("this is one on event")
    });
    $("#onWayToEvent").on("click",function(){
    alert("this is two on event")
    });
    $("#onWayToEvent").on("click",function(){
    alert("this is three on event")
    });
    }

    </div>
    <button id="bindWayToEvent">通过bind的方法多次注冊事件</button>

    <div class="info" >
    通过 jquery 的bind方法多次注冊的方法也是一样,不会把原来的方法覆盖了,也是把方法以
    队列的形式保存起来。触发事件后按注冊次序逐个运行。

    主要代码:
    function initBindEvent(){
    //为id为bindWayToEvent 的button注冊点击事件
    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. one")
    });

    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. two")
    });

    $("#bindWayToEvent").bind("click",function(){
    alert("this is registry event by bind. three")
    });
    }

    </div>

    <button id="clickWayToEvent">通过click方法多次注冊事件</button>
    <div class="info" >
    通过 jquery 的click方法多次注冊的方法也是上面的效果一样 。


    主要代码:
    function initClickvent(){
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. one");
    });

    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. two");
    });
    $("#clickWayToEvent").click(function(){
    alert("this is registry event by click. three");
    });
    }

    </div>
    <button id="liveWayToEvent">通过live 方法多次注冊事件</button>
    <div class="info" >
     要怎么样才干把前面的事件给覆盖掉。仅仅保留最后注冊的事件方法?
    </div>

    <button id="oneEvnetByBind">通过unbind,bind方法进行事件的唯一注冊</button>
    <div class="info">
    这种方法能够行得通
    主要代码:
    function oneEventByBindUnBind(){
     
    registryManyEvent("oneEvnetByBind");
    $("#oneEvnetByBind").unbind("click").bind("click",function(){
    alert("only you !!!!!!!");
    });

    }

     

    function registryManyEvent(id){
    $("#"+id).click(function(){
    alert("this is registry event by common. one");
    });

    $("#"+id).click(function(){
    alert("this is registry event by common. two");
    });
    $("#"+id).click(function(){
    alert("this is registry event by common. three");
    });
    }

    </div>

    <button id="oneEvnetByDieLive">通过 die live 方法进行事件的唯一载入</button>
    <div class="info">
    我们用的 jquery-1.10.2.js 这里没有提供 die live 方法。

    对于网上提供的这种方法是无效的。
    主要代码:
    function oneEvnetByDieLive(){
    registryManyEvent("oneEvnetByDieLive");
    $("#oneEvnetByDieLive").die().live("click",function(){

    alert("the one of you !!!!!!");
    });
    }

    function registryManyEvent(id){
    $("#"+id).click(function(){
    alert("this is registry event by common. one");
    });

    $("#"+id).click(function(){
    alert("this is registry event by common. two");
    });
    $("#"+id).click(function(){
    alert("this is registry event by common. three");
    });
    }

    </div>

    </body>
    </html>

  • 相关阅读:
    Jquery弹出框插件大全
    RGB颜色在线转换
    正则表达式最后加一个/g或者/ig代表什么意思
    JS实现页面上链接新窗口打开
    防止网站服务器被黑的一些方法
    JS中字符串背后的秘密
    ASP.NET MVC 路由规则写法
    日积月累从细节做起
    VC++ 配置困惑
    父类子类指针函数调用注意事项
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6694370.html
Copyright © 2011-2022 走看看