JQuery绑定事件四种实现方法解析

下面就为您详细讲解“JQuery绑定事件四种实现方法解析”的完整攻略。

一、介绍

1.1 JQuery

JQuery是一个流行的JavaScript库,它允许开发人员以更少的代码编写更多的JavaScript功能。其中一个最重要的原因是它简化了许多常见的JavaScript任务。例如,与DOM交互、遍历元素集合、事件处理等。

1.2 绑定事件

事件绑定是指以编程方式将代码绑定到某个HTML元素的某个事件上,例如单击、鼠标移动、键盘敲击等。

二、四种方法

JQuery绑定事件有四种实现方法:

  1. 直接绑定。使用JQuery选择器,选择元素并直接绑定事件处理程序。

  2. 使用函数绑定。在函数内部绑定事件处理程序。

  3. 委托绑定。将事件处理程序绑定到父元素并使用选择器选择要处理的子元素。具有处理动态添加的元素的优势。

  4. 事件代理绑定。将事件处理程序绑定到父元素,但只有当事件由某些子元素触发时才会触发处理程序。

下面我们将对四种方法进行详细说明。

2.1 直接绑定

直接绑定是使用最广泛的方法。可以使用以下方式进行:

$(document).ready(function() {
  $("#button1").click(function(){
        alert("Button 1 Clicked");
    });
});

上述代码定义了当按钮"id=button1"被点击时的响应函数。

具体实例:

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta charset="utf-8"> 
<title>直接绑定</title>
</head>
<body>
<button id="button1">按钮1</button>
<script type="text/javascript">
$(document).ready(function() {
  $("#button1").click(function(){
        alert("Button 1 Clicked");
    });
});
</script>
</body>
</html>

输出结果:当点击按钮1时将会弹出“Button 1 Clicked”的提示框。

2.2 使用函数绑定

函数绑定有时也叫做匿名函数绑定。可以使用以下方式进行:

$(document).ready(function() {
    function myEventFunction (event) {
        alert("You clicked me at " + event.timeStamp );
    }
    $("#button2").click(myEventFunction);
});

上述代码定义了处理程序函数。它包含传递给处理程序的事件参数。可以使用该参数获取事件属性。该代码还使用了类似于直接绑定的语法,但它使用函数名称而不是直接绑定函数代码。

具体实例:

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta charset="utf-8"> 
<title>使用函数绑定</title>
</head>
<body>
<button id="button2">按钮2</button>
<script type="text/javascript">
$(document).ready(function() {
    function myEventFunction (event) {
        alert("You clicked me at " + event.timeStamp );
    }
    $("#button2").click(myEventFunction);
});
</script>
</body>
</html>

输出结果:当点击按钮2时将会弹出包含时间戳的提示框。

2.3 委托绑定

委托绑定是指为选择器匹配的所有元素添加事件处理程序,但是'在处理程序绑定时',元素可以不存在。jQuery提供了一些有关事件委派的功能:

  • .on()方法 - 在选择器匹配的所有元素上绑定事件。

  • .delegate()方法 - 在选择器匹配的父元素上绑定事件。

  • .live()方法 - 在选择器匹配的所有元素及动态添加的元素上绑定事件。最新版的jquery已经不推荐使用该方法,推荐使用.on()方法绑定事件。

$(document).ready(function () {
    $("ul#list1").delegate("li", "click", function () {
        $(this).toggleClass("highlight");
    });
});

上述代码定义了对"ul#list1"的"li"元素的单击响应函数。它使用.toggleClass()方法切换"highlight"类以改变元素的背景色。

具体实例:

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta charset="utf-8"> 
<title>委托绑定</title>
<style type="text/css">
.highlight {background-color: #ccc;color:#fff;}
</style>
</head>
<body>
<ul id="list1">
  <li>第一项</li>
  <li>第二项</li>
  <li>第三项</li>
</ul>

<script type="text/javascript">
$(document).ready(function () {
    $("ul#list1").delegate("li", "click", function () {
        $(this).toggleClass("highlight");
    });
});
</script>
</body>
</html>

输出结果:当单击一个列表元素时,它将在高亮/未高亮之间进行切换。

2.4 事件代理绑定

事件代理绑定是指为选择器匹配的所有元素添加事件处理程序,但是处理程序只对指定的子元素(选择器结果)触发。jQuery提供了一些有关事件代理的功能:

  • .on()方法 - 在选择器匹配的元素上绑定事件,该元素下包含的所有每个目标元素都绑定相同的事件,可以与选择器联合使用。

  • .delegate()方法 - 在选择器匹配的父元素上绑定事件,该父元素下包含的所有每个目标元素都绑定相同的事件。

  • .live()方法 - 在选择器匹配的所有元素上绑定事件,但仅触发由给定选择器规定的后代元素匹配的事件。最新版的jquery已经不推荐使用该方法,推荐使用.on()方法绑定事件。

$(document).ready(function () {
    $("#table1").on("click", "tr td:nth-child(odd)", function () {
        $(this).parent().toggleClass("highlight");
    });
});

上述代码定义了响应函数。它使用toggleClass()方法切换"highlight"类以更改"tr"的背景颜色。

具体实例:

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta charset="utf-8"> 
<title>事件代理绑定</title>
<style type="text/css">
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}

.highlight {background-color: #ccc;color:#fff;}
</style>
</head>
<body>
<table id="table1">
  <tr>
    <td>A1</td>
    <td>B1</td>
  </tr>
  <tr>
    <td>A2</td>
    <td>B2</td>
  </tr>
  <tr>
    <td>A3</td>
    <td>B3</td>
  </tr>
</table>

<script type="text/javascript">
$(document).ready(function () {
    $("#table1").on("click", "tr td:nth-child(odd)", function () {
        $(this).parent().toggleClass("highlight");
    });
});
</script>
</body>
</html>

输出结果:单击任何带有奇数列(第一列)的单元格将为整行添加背景颜色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JQuery绑定事件四种实现方法解析 - Python技术站

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

相关文章

  • 如何在DOM中存储数据

    在DOM中存储数据可以使用多种方法,包括使用属性、数据属性、自定义属性、数据集等。以下是如何在DOM中存储数据的完整攻略: 步骤一:选择元素 首先需要选择要存储数据的元素。可以使用CSS选择器选择元素。以下是示例: // Select element to store data in var myElement = document.getElementBy…

    jquery 2023年5月9日
    00
  • jquery事件绑定方法介绍

    下面是详细讲解“jquery事件绑定方法介绍”的攻略: jQuery事件绑定方法介绍 在jQuery中,我们可以使用事件绑定方法来响应用户的操作,比如点击、鼠标移入移出等事件。下面是jQuery常用的事件绑定方法: 1. 绑定事件 语法: $(selector).bind(event, data, handler) 参数说明: selector:被选中的元素…

    jquery 2023年5月27日
    00
  • 详解jQuery中的isPlainObject()使用方法

    详解jQuery中的isPlainObject()使用方法 在jQuery中,isPlainObject()是一个非常常用的方法,用于判断传入参数是否是普通对象。本文将详细讲解isPlainObject()的使用方法。 isPlainObject()方法的语法 jQuery.isPlainObject( obj ) 参数: obj:需要被判断的对象 返回值:…

    jquery 2023年5月28日
    00
  • jQuery 锚点跳转滚动条平滑滚动一句话代码

    下面我将详细讲解“jQuery 锚点跳转滚动条平滑滚动一句话代码”的完整攻略,过程中将包含两条示例说明。 什么是jQuery锚点跳转滚动条平滑滚动? jQuery锚点跳转滚动条平滑滚动是指点击页面上的锚点链接时,页面会自动平滑滚动到对应的页面位置,而不是直接跳转过去,这样的效果可以提升用户体验。 如何实现jQuery锚点跳转滚动条平滑滚动? 在jQuery中…

    jquery 2023年5月28日
    00
  • JQueryEasyUI框架下的combobox的取值和绑定的方法

    JQuery EasyUI是一个基于jQuery的UI插件集合,提供了丰富的ui组件,其中包含了Combobox组件。Combobox可以用于数据选择,下拉框选择等场景。在JQueryEasyUI框架下,Combobox的取值和绑定方法如下所示: Combobox的绑定 使用以下代码可以将Combobox和一个本地数组进行绑定: <input clas…

    jquery 2023年5月18日
    00
  • jQuery中.live()方法的用法深入解析

    jQuery中.live()方法的用法深入解析 1. 什么是jQuery中的.live()方法? .live()方法是jQuery中一个事件委托的方法,用于在文档中的一个元素上注册事件处理器,该处理器会自动添加到文档中所有匹配选择器的元素及以后加入文档中的元素上。 PS:jQuery 1.7版本起,.live()方法已经被移除,使用.on()方法代替。但是,…

    jquery 2023年5月27日
    00
  • 如何从jQuery选择器中获得一个DOM元素

    从jQuery选择器中获取一个DOM元素的完整攻略如下: 步骤1:使用jQuery选择器获取DOM元素的jQuery对象 使用jQuery选择器获取要获取的DOM元素的jQuery对象。例如,要获取ID为myElement的DOM元素,可以使用下面的代码: var myElement = $(‘#myElement’); 步骤2:从jQuery对象中获取DO…

    jquery 2023年5月12日
    00
  • thinkPHP5使用laypage分页插件实现列表分页功能

    想要在ThinkPHP5中使用laypage分页插件实现列表分页功能,需要以下步骤: 步骤1:获取laypage插件 可以在框架中使用layui官方提供的cdn链接获取laypage插件库,也可以将其下载到本地。获取方法可参考以下内容: <!– 引入layui框架–> <script src="/path/to/layui.j…

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