• jQuery 事件注册


    重点事件注册.on()

    <!DOCTYPE html>
    <html lang="zh-CN">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
      <style>
        .hue {
          background-color: #0ff;
        }
      </style>
    </head>
    
    <body>
    
      <input type="button" value="增加" id="btn">
      <input type="button" value="自定义" id="btn1">
      <input type="button" value="移除" id="btn2">
      <div>
        <p>我是一个P</p>
      </div>
    
      <script src="jquery-1.12.4.js"></script>
      <script>
        /* on() 方法在被选元素及子元素上添加一个或多个事件处理程序。
        $(selector).on(event,childSelector,data,function)
            event    必需。规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值,也可以是数组。必须是有效的事件。
            childSelector    可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
            data    可选。规定传递到函数的额外数据。
            function    可选。规定当事件发生时运行的函数。
    
          自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。
          注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
          提示:如需移除事件处理程序,请使用 off() 方法。
          提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。 */
        $(function () {
          //给btn注册点击事件
          $("#btn").on("click", function () {
            $("<p>我是新建的p元素</p>").appendTo("div");
          });
    
          //注册多个事件
          $("p").on("mouseover mouseout", function () {
            $("p").toggleClass("hue");
          });
    
          //给div注册委托事件
          $("div").on("mouseover mouseout", "p", function () {
            $("p").toggleClass("hue");
          });
    
          //多个事件 各自处理函数
          $("p").on({
            mouseover: function () {
              $("p").css("background-color", "lightgray");
            },
            mouseout: function () {
              $("p").css("background-color", "lightblue");
            },
            click: function () {
              $("p").css("background-color", "yellow");
            }
          });
    
          //自定义事件
          $("p").on("myOwnEvent", function (event, showName) {
            $(this).text(showName + "单击此按钮可将自定义事件附加到此p元素上。").show();
          });
          $("#btn1").click(function () {
            $("p").trigger("myOwnEvent", ["小白+"]);
          });
    
          //off()移除on方法添加的事件
          $("#btn2").click(function () {
            $("p").off("click");
          });
    
        });
      </script>
    
    </body>
    
    </html>

    1.bind()方法

    //bind方式
          //bind() 方法向被选元素添加一个或多个事件处理程序,以及当事件发生时运行的函数。
          //自 jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的首选方法。
          //语法:$(selector).bind(event,data,function,map)
          //event    必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
          //data    可选。规定传递到函数的额外数据。
          //function    必需。规定当事件发生时运行的函数。
          $("p").bind("mouseover mouseout", function () {
            $("p").toggleClass("intro");
          });

    2.delegate()

    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title></title>
      <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
      </script>
      <script>
        //delegate:代理,委托(给父元素注册委托事件,最终还是有子元素来执行。)
        //$('div').delegate(childSelector,event,data,function)
        //delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
        //使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
        //(自 jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的首选方法。)
        //childSelector    必需。规定要添加事件处理程序的一个或多个子元素。(真正执行事件的子元素)
        //event    必需。规定添加到元素的一个或多个事件。由空格分隔多个事件值。必须是有效的事件。
        //data    可选。规定传递到函数的额外数据。
        //function    必需。规定当事件发生时运行的函数。
        $(document).ready(function () {
          $("div").delegate("p", "click", function () {
            $(this).slideToggle();
          });
          $("button").click(function () {
            $("<p>这是一个新段落。</p>").insertAfter("button");
          });
        });
      </script>
    </head>
    
    <body>
      <p><b>注意:</b> 只有在 div 元素中的 p 元素才有效果。</p>
      <div style="background-color:yellow">
        <p>这是一个段落。</p>
        <p>点击任意一个 p 元素,使其消失,包括这个。</p>
        <button>在这个按钮后新增一个 p 元素</button>
      </div>
    </body>
    
    </html>
  • 相关阅读:
    微信支付 h5
    微信支付 h5
    Android stadio butternife工具
    Android stadio butternife工具
    Android stadio 自定义debug release keystore
    Android stadio 自定义debug release keystore
    Android 微信支付步骤
    Android 微信支付步骤
    t
    t
  • 原文地址:https://www.cnblogs.com/wanguofeng/p/10785293.html
Copyright © 2020-2023  润新知