• jQuery on() 方法 为选定已存在元素和未来元素绑定标准事件和自定义事件


    很有必要说说jQuery的on方法,这个方法存在大乾坤大奥秘,主要注意两点:

    1、为已存在元素和未来元素(动态添加元素)绑定处理函数。

    2、自定义一个非标准的事件并绑定处理函数。

    定义和用法

    on() 方法在被选元素及子元素上添加一个或多个事件处理程序。

    自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。

    注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

    提示:如需移除事件处理程序,请使用 off() 方法。

    提示:如需添加只运行一次的事件然后移除,请使用 one() 方法。

    实例1:在元素上添加自定义事件 ,就是绑定一个自定义事件

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
      $("p").on("myOwnEvent", function(event, showName){
        $(this).text(showName + "! What a beautiful name!").show();
      });
      $("button").click(function(){
        $("p").trigger("myOwnEvent",["Anja"]);
      });
    });
    </script> 
    </head>
    <body>
    
    <button>Trigger custom event</button>
    <p>Click the button to attach a customized event on this p element.</p>
    
    </body>
    </html>

    测试运行,请点击这里

    实例2:向未来的元素添加事件处理程序,绑定处理方法时,元素还不存在

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
      $("div").on("click","p",function(){
        $(this).slideToggle();
      });
      $("button").click(function(){
        $("<p>This is a new paragraph.</p>").insertAfter("button");
      });
    });
    </script>
    </head>
    <body>
    
    <div style="background-color:yellow">
    <p>This is a paragraph.</p>
    <p>Click any p element to make it disappear. Including this one.</p>
    <button>Insert a new p element after this button</button>
    </div>
    
    </body>
    </html>

    on() 和 click() 的区别:

    二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中。

    以下实例中原先的 HTML 元素点击其身后的 Delete 按钮就会被删除。而动态添加的 HTML 元素,使用 click() 这种写法,点击 Delete 按钮无法删除;使用 On() 方式可以。

    更多实例

    从 bind() 改为 on()
    如何使用 on() 来达到与 bind() 相同的效果。

    Changing from delegate() to on()
    如何使用 on() 来达到与 delegate() 相同的效果。

    从 live() 改为 on()
    如何使用 on() 来达到与 live() 相同的效果。

    添加多个事件处理程序
    如何向元素添加多个事件处理程序。

    使用 map 参数添加多个事件处理程序
    如何使用 map 参数向被选元素添加多个事件处理程序。

    在元素上添加自定义事件
    如何在元素上添加自定义命名空间事件。

    向函数传递数据
    如何向函数传递数据。

    向未来的元素添加事件处理程序
    演示 on() 方法也适用于尚未创建的元素。

    移除事件处理程序
    如何使用 off() 方法移除事件处理程序。

    参考原文:http://www.runoob.com/jquery/event-on.html

  • 相关阅读:
    要求两个条件都为假时,执行某些操作
    Celery + RabbitMq 示意图
    关于消息队列的好文章
    django related_name, on_delete
    Celery 图,[转]
    django model 中 meta子类详解
    django 自定义app
    python __dict__
    Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)【转】
    scala private
  • 原文地址:https://www.cnblogs.com/wangqiideal/p/10091100.html
Copyright © 2020-2023  润新知