博客
关于我
jq05--强大的jq事件(事件处理)、on()、bind()、delegate()、hover()
阅读量:382 次
发布时间:2019-03-04

本文共 2179 字,大约阅读时间需要 7 分钟。

jQuery事件机制

jQuery事件机制是对JavaScript操作DOM事件的一种封装,主要包括事件绑定、事件解绑和事件触发。其最显著特点是能够为DOM对象绑定多个事件,这大大提高了开发效率。

jQuery事件的发展历程

jQuery事件的发展经历了多个阶段,从简单事件绑定到现代的on事件绑定。其发展历程主要包括以下几个阶段:

  • 简单事件绑定:最初的事件绑定方式,支持单个事件。
  • bind事件绑定:通过bind方法绑定事件,能够同时绑定多个事件。
  • delegate事件绑定:针对支持动态创建的元素,提升了事件绑定的性能。
  • on事件绑定:从jQuery 1.7版本开始推出的现代事件绑定方式,整合了前几代的优点。
  • bind方式

    bind方法用于为匹配到的元素绑定一个或多个事件,语法格式为:

    bind(type[, data], fn)

    • type:事件类型字符串,支持多个事件,用空格分隔。
    • data:可选参数,作为事件对象的data属性值传递给事件处理函数。
    • fn:事件处理函数,若为false则禁用默认行为。

    示例:

    $("p").bind("click mouseenter", function(e) {    // 事件响应方法(函数)});

    其优势在于支持同时绑定多个事件,但缺点是必须在文档加载后绑定,无法处理动态创建的元素。

    delegate方式

    delegate方法专门用于为支持动态创建的元素绑定事件,语法格式为:

    delegate(selector, [type], [data], fn)

    • selector:过滤触发事件的元素。
    • type:事件类型,支持多个事件。
    • data:传递给事件处理函数的额外数据。
    • fn:事件处理函数。

    示例:

    $(".父级对象").delegate("过滤对象", "click", function() {    // 为 .父级对象下面的所有过滤对象绑定事件});

    其优势在于支持动态创建的元素绑定事件,性能较高。

    on方式

    on方法是现代的事件绑定方式,自jQuery 1.7版本后取代了前两种方法,语法格式为:

    on(events[, selector][, data], handler)

    • events:事件类型字符串,支持多个事件。
    • selector:指定触发事件的元素,省略时事件直接在匹配元素上触发。
    • data:传递给事件处理函数的数据。
    • handler:事件处理函数。

    示例:

    $(selector).on("click", "span", function() {    // 给$(selector)绑定点击span事件});

    on方法的最大优势是减少事件绑定次数,提高了效率,特别适用于动态创建的元素。

    事件解绑

    事件解绑是确保代码可维护性和性能的重要环节,jQuery提供了多种方式进行事件解绑。

    unbind方式

    unbind方法用于解除bind方式绑定的事件,语法格式为:

    unbind([type][, data|fn])

    • type:指定要解除的事件类型,支持多个事件。
    • data/fn:可选参数,用于指定要解除的具体事件处理函数。

    示例:

    $("selector").unbind();$("selector").unbind("click");

    undelegate方式

    undelegate方法用于解除delegate方式绑定的事件,语法格式为:

    undelegate([type][, data|fn])

    • type:指定要解除的事件类型。
    • data/fn:可选参数,用于指定要解除的具体事件处理函数。

    示例:

    $("selector").undelegate();$("selector").undelegate("click");

    off方式

    off方法用于解除on方式绑定的事件,语法格式为:

    off([events][, selector][, data])

    • events:解除的事件类型,支持多个事件。
    • selector:指定要解除的事件处理函数所在的元素。
    • data:传递给事件处理函数的数据。

    示例:

    $("selector").off(); $("selector").off("click");

    事件触发

    事件触发是调用预定义的函数或浏览器行为的重要功能,jQuery提供了多种触发方式。

    简单事件触发

    通过trigger方法触发事件,直接在元素上触发对应的浏览器行为:

    $(selector).trigger("click");

    事件响应处理

    通过triggerHandler方法触发事件响应函数,避免触发浏览器行为:

    $(selector).triggerHandler("focus");

    事件切换

    hover方法用于处理鼠标在元素上方悬停和移出的事件,语法格式为:

    hover([over], [out])

    • over:鼠标悬停时的事件处理函数。
    • out:鼠标移出时的事件处理函数。

    示例:

    $("元素").hover(function() {    // 鼓励事件}, function() {    // 离开事件});

    hover方法通过检查鼠标的位置,避免了传统的mouseover和mouseout的错误,能够更准确地控制事件触发。

    转载地址:http://tqtr.baihongyu.com/

    你可能感兴趣的文章
    npm配置安装最新淘宝镜像,旧镜像会errror
    查看>>
    NPM酷库052:sax,按流解析XML
    查看>>
    npm错误 gyp错误 vs版本不对 msvs_version不兼容
    查看>>
    npm错误Error: Cannot find module ‘postcss-loader‘
    查看>>
    npm,yarn,cnpm 的区别
    查看>>
    NPOI之Excel——合并单元格、设置样式、输入公式
    查看>>
    NPOI初级教程
    查看>>
    NPOI利用多任务模式分批写入多个Excel
    查看>>
    NPOI在Excel中插入图片
    查看>>
    NPOI将某个程序段耗时插入Excel
    查看>>
    NPOI格式设置
    查看>>
    NPOI设置单元格格式
    查看>>
    Npp删除选中行的Macro录制方式
    查看>>
    NR,NF,FNR
    查看>>
    nrf24l01+arduino
    查看>>
    nrf开发笔记一开发软件
    查看>>
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>