jQuery中delegate()方法的用法详解

yizhihongxing

当前主流的jQuery版本中已经不再使用delegate()方法,而是使用on()方法代替。因此,在本回答中,我将讲解on()方法的用法,并附上两个具体的示例。

一、on()方法

on()方法用于绑定一个或多个事件处理函数到一个或多个元素。

语法:

$(selector).on(event,childSelector,data,function)

参数解释:

  • selector:必需,用于选取要绑定事件的元素;
  • event:必需,一个或多个事件类型,多个事件类型用空格分隔;
  • childSelector:可选,用于指定需要绑定事件的子元素;
  • data:可选,向事件处理函数传递的附加数据;
  • function:必需,事件触发时执行的函数。

示例1:单击按钮弹出提示框

<!DOCTYPE html>
<html>
<head>
    <title>示例1:单击按钮弹出提示框</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("button").on("click", function(){
                alert("Hello World!");
            });
        });
    </script>
</head>
<body>
    <button>单击我</button>
</body>
</html>

该示例中,当单击按钮时,会弹出提示框,提示框内容为“Hello World!”。

示例2:利用事件委托为新增对象添加事件

<!DOCTYPE html>
<html>
<head>
    <title>示例2:利用事件委托为新增对象添加事件</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("ul").on("click", "li", function(){
                $(this).toggleClass("checked");
            });

            $("#add").on("click", function(){
                $("ul").append("<li>New Item</li>");
            });
        });
    </script>
    <style>
        .checked{
            text-decoration: line-through;
        }
    </style>
</head>
<body>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
    <button id="add">添加</button>
</body>
</html>

该示例中,已经存在的li元素绑定了单击事件,单击时会切换样式。同时,当单击“添加”按钮时,会新增一个li元素,该元素也会自动绑定单击事件,具有与之前li元素相同的功能。

二、注意事项

  • 统一使用on()方法取代delegate()、live()、bind()方法;
  • 小心与off()方法的配合使用,避免绑定和解绑定事件的死循环;
  • 避免在同一元素上重复绑定相同事件(通常不会有太大问题,但是会降低性能);
  • 对比使用其它事件委托技术,选择最适合的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery中delegate()方法的用法详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQWidgets jqxMenu popupZIndex属性

    以下是关于 jQWidgets jqxMenu 组件中 popupZIndex 属性的详细攻略。 jQWidgets jqxMenu popupZIndex 属性 jQWidgets jqxMenu 组件 popupZIndex 属性用于设置菜单弹出层的 z-index 值。该属性的值必须是一个整数。 语法 $(‘#menu’).jqxMenu({ popu…

    jquery 2023年5月12日
    00
  • jQuery对象与DOM对象之间的相互转换

    jQuery对象和DOM对象都代表着网页中的元素,但它们的操纵方式和应用场景有一定的区别。因此,在使用jQuery时,我们经常会涉及到它和DOM对象之间的转换。下面就来详细讲解一下这个过程的完整攻略。 何为jQuery对象和DOM对象 在深入介绍转换方法之前,我们需要先明确一下jQuery对象和DOM对象分别指什么。 jQuery对象:是由包含一个或多个DO…

    jquery 2023年5月28日
    00
  • jQuery时间验证和转换为标准格式的时间格式

    下面是“jQuery时间验证和转换为标准格式的时间格式”的完整攻略。 1. jQuery时间验证 在jQuery中,可以通过使用正则表达式或使用时间格式验证插件来检查时间格式的正确性。 1.1. 通过正则表达式验证 下面是一个验证yyyy-mm-dd格式的正则表达式: var reg = /^(\d{4})-(\d{2})-(\d{2})$/; if(reg…

    jquery 2023年5月28日
    00
  • jQuery ajax提交Form表单实例(附demo源码)

    下面我将详细讲解“jQuery ajax提交Form表单实例(附demo源码)”的实现方法和步骤。 步骤一:准备工作 在项目中引入jQuery库,以及form表单提交所需要的相关资源。比如在head标签中引入: <script src="https://code.jquery.com/jquery-3.5.1.min.js">…

    jquery 2023年5月28日
    00
  • PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能

    首先,为了实现输入自动完成提示的功能,我们需要使用PHP和jQuery.autocomplete插件两个技术点。其中,PHP技术用于获取所有可用提示,并将其分装成JSON格式,而jQuery.autocomplete插件则负责将输入框中的文本发送给后端PHP程序,并接受服务器端返回的JSON数据,并将其渲染到网页上,从而实现输入自动完成提示的功能。 接下来,…

    jquery 2023年5月27日
    00
  • php jq jquery getJSON跨域提交数据完整版

    PHP、jQuery、JSONP、CORS 跨域请求 在 Web 开发中经常会遇到跨域请求的场景,比如一个 Web 页面上需要通过 AJAX 请求外部的数据,或者我们需要调用第三方提供的接口。在跨域请求中,后端常用的解决方案包括 JSONP 和 CORS,前端常用的解决方案包括 Ajax 和 Fetch。 一、JSONP JSONP(JSON with Pa…

    jquery 2023年5月27日
    00
  • Jquery全选与反选点击执行一次的解决方案

    为了实现全选和反选的功能,我们可以使用 jQuery 的 prop() 和 each() 方法来轻松实现全部或部分勾选的功能。下面是jQuery全选与反选的完整攻略: HTML结构 首先,我们需要准备一个表格,里面有多个复选框和全选按钮: <table> <thead> <tr> <th><input t…

    jquery 2023年5月27日
    00
  • jquery键盘事件介绍

    下面是关于 “jquery键盘事件介绍” 的完整攻略: 1.键盘事件 jQuery做为一个开发工具库,内置了很多方便的操作,其中就包括了对键盘事件的处理。 键盘事件主要有3种: 键盘按下事件(keypress) 键盘按键释放事件(keyup) 键盘按键按下事件(keydown) 2.键盘事件的绑定 绑定键盘事件的方式和绑定其他事件的方式是相同的,都是通过jQ…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部