• JQuery-事件


    事件

    事件绑定

    jQuery中的事件绑定,可以绑定多个同名事件而不会发生冲突。

    // eventName(fn)
    // 编程效率略高,部分事件未能实现
    $('.btn').click(function(){
        // ...
    });
    
    // on(eventName, fn)
    // 编程效率略低,所有JS事件都能实现,可以绑定自定义事件
    $('.btn').on('click', function(){
        // ...
    });
    

    事件移除

    // 移除指定事件
    $('.btn').off('click');
    
    // 移除所有事件
    $('.btn').off();
    

    事件自动触发

    • trigger

      $('.btn').trigger('click');
      
    • triggerHandler

      $('.btn').triggerHandler('click');
      
    • trigger 与 triggerHandler 的 区别:

      • tigger 不会阻止冒泡事件;triggerHandler 会阻止冒泡事件
      • trigger 不会阻止默认事件;triggerHandler 不会阻止默认事件

    自定义事件

    自定义事件的两个条件:

    • 必须通过on来进行定义
    • 必须通过 trigger/triggerHandler来进行注册
    $('div').on('myClick', function(){
        // ...
    });
    $('div').trigger('myClick');
    

    事件命名空间

    命名空间可以有效地管理同一事件的不同监听器,尤其在定义组件的时候可以有效地保证组件内部的事件只在组件内部有效,不会影响到其它组件。

    事件命名空间的两个条件:

    • 必须通过on来进行定义
    • 必须通过 trigger/triggerHandler来进行注册
    $('div').on('click.demo1', function(){
        // ...
    });
    

    事件委托

    jQuery中普通的事件监听,只能监听在在绑定事件时DOM中已有的元素,无法监听在绑定之后才添加的DOM元素。这个时候我们就需要进行事件委托,委托页面中已有的元素进行事件监听。

    $("ul").delegate("li", "click", function () {
         // ...
     });
    

    移入移除事件

    • mouseover/mouseout事件, 在子元素上移入移出时也会触发父元素的事件
    • mouseenter/mouseleave, 在子元素上移入移出时不会触发父元素的事件
    • hover可以监移入移出事件,会触发事件冒泡
  • 相关阅读:
    面试问题之C++语言:C++中指针和引用的区别
    手撕代码:最长回文子串
    手撕代码:求字符串最长回文子序列
    手撕代码:用宏来实现获取数组的大小
    手撕代码之线程:thread类简单使用
    面试问题之计算机网络:OSI七层网络模型及相关协议
    C++各种输入
    C printf格式化输出
    记一次mac 安装MySQL-python 的惨痛经历
    记一次tomcat程序运行慢的处理过程
  • 原文地址:https://www.cnblogs.com/luwenfeng/p/11700413.html
Copyright © 2020-2023  润新知