博客
关于我
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/

    你可能感兴趣的文章
    Permutation
    查看>>
    perspective意思_2020年12月英语四级词汇讲解丨考点归纳:perspective
    查看>>
    PE文件,节头有感IMAGE_SECTION_HEADER
    查看>>
    PE查找文件偏移地址
    查看>>
    PE知识复习之PE的导入表
    查看>>
    PFX(Parallel Framework) and Traditional Multithreading
    查看>>
    PGOS:今天动手给电脑装青苹果Win7 X64位系统
    查看>>
    pgpool-II3.1 的内存泄漏(一)
    查看>>
    PgSQL · 特性分析 · PG主备流复制机制
    查看>>
    PGSQL主键序列
    查看>>
    PGSQL安装PostGIS扩展模块
    查看>>
    pg数据库中两个字段相除
    查看>>
    PhalApi:[1.23] 请求和响应:GET和POST两者皆可得及超越JSON格式返回
    查看>>
    Phalcon环境搭建与项目开发
    查看>>
    Phantom.js维护者退出,项目的未来成疑
    查看>>
    Pharmaceutical的同学们都看过来,关于补码运算的复习相关内容
    查看>>
    Phoenix 查看表信息及修改元数据
    查看>>
    Phoenix基础命令_视图映射和表映射_数字存储问题---大数据之Hbase工作笔记0036
    查看>>
    phoenix无法连接hbase shell创建表失败_报错_PleaseHoldException: Master is initializing---记录020_大数据工作笔记0180
    查看>>
    Phoenix简介_安装部署_以及连接使用---大数据之Hbase工作笔记0035
    查看>>