jQuery中对未来的元素绑定事件用bind、live or on

在jQuery中,我们可以对元素绑定事件,从而实现特定的交互操作。但是,有些情况下,我们希望能够对未来的元素绑定事件,即新增元素后也能触发我们定义的事件操作。那么,在这种情况下,我们应该如何使用jQuery来实现呢?这就需要用到bind、live或on这三种方法来实现。

1. bind方法

bind方法是最早的一种对未来元素绑定事件的方法。它可以绑定一个或多个事件处理程序,以及一个事件发生时,可选地阻止默认行为和阻止事件冒泡。

他的基本语法为:

$(selector).bind(event,data,function)

其中,event为必选参数,表示绑定的事件类型,如click、mousemove等;

data则为可选参数,表示传递到事件处理程序的数据;

function则为对事件的响应函数,可以是匿名函数或函数名。

示例一:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('button').bind('click', function () {
        $('<p></p>').text('这是用bind方法创建的新段落').appendTo('body');
      });
    });
  </script>
</head>
<body>
  <button>创建新段落</button>
  <p>这是原有的段落</p>
</body>
</html>

示例二:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('body').bind('click', function (event) {
        console.log('X坐标:' + event.pageX);
        console.log('Y坐标:' + event.pageY);
      });
    });
  </script>
</head>
<body>
  <p>点击页面获得当前鼠标的X坐标和Y坐标</p>
</body>
</html>

以上两个示例都利用了bind方法来对新创建的元素绑定事件。

2. live方法

live方法是一个相对较新的对未来元素绑定事件的方法。它基于事件委托机制,从根元素处对事件进行捕获,从而实现对未来元素的事件绑定。

它的基本语法如下所示:

$(selector).live(event,data,function)

其中,selector为必选参数,表示要绑定事件的元素;

event为必选参数,表示绑定的事件类型;

data为可选参数,表示传递给事件处理程序的数据;

function表示对事件的响应函数。

示例一:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('body').append('<button id="btn">动态创建按钮</button>');
      $('#btn').live('click', function () {
        $('<p></p>').text('这是用live方法创建的新段落').appendTo('body');
      });
    });
  </script>
</head>
<body>
  <p>点击“动态创建按钮”创建新段落</p>
</body>
</html>

示例二:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('.block').live('click', function () {
        $(this).css('background-color', 'red');
      });
    });
  </script>
</head>
<body>
  <div class="block"></div>
  <p>点击div块使其背景变成红色</p>
</body>
</html>

以上两个示例都利用了live方法来对新创建的元素绑定事件。

3. on方法

on方法是jQuery 1.7版本之后新增的一种对未来元素绑定事件的方法。它可以绑定一个或多个事件处理函数到匹配元素集合中的每个元素。

他的基本语法如下所示:

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

其中,selector为必选参数,表示要绑定事件的元素;

event为必选参数,表示绑定的事件类型,可以为多个事件类型,多个事件类型之间以空格隔开;

data为可选参数,表示传递给事件处理程序的数据;

function表示对事件的响应函数。

示例一:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('p').on('click', 'span', function () {
        $(this).css('color', 'red');
      });
      $('p').append('<span>动态创建的文字</span>');
    });
  </script>
</head>
<body>
  <p>这是一段文本</p>
</body>
</html>

示例二:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(function () {
      $('#btn').on('mouseover mouseout', function () {
        $(this).toggleClass('highlight');
      });
    });
  </script>
  <style type="text/css">
    .highlight {
      background-color: yellow;
    }
  </style>
</head>
<body>
  <button id="btn">鼠标经过/离开时高亮</button>
</body>
</html>

以上两个示例都利用了on方法来对新创建的元素绑定事件。

总的来说,bind方法是最早的一种对未来元素绑定事件的方法,它的返回值为jQuery对象,不支持事件委托;

而live方法是一种使用事件委托机制实现的对未来元素绑定事件的方法,它的返回值也为jQuery对象,可以支持事件委托;

on方法是一种比较新的,能够绑定多个事件类型并能实现事件委托的对未来元素绑定事件的方法,它的返回值同样为jQuery对象。

因此,在实际应用中,我们可以根据具体的情况来选择相应的方法来对未来元素绑定事件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery中对未来的元素绑定事件用bind、live or on - Python技术站

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

相关文章

  • $.extend 的一个小问题

    下面是关于“$.extend 的一个小问题”的完整攻略: 标题一 问题描述 $.extend 方法允许我们对一个或多个对象进行扩展操作,其中第一个参数是目标对象,后面的参数是源对象。在使用时我们通常是将两个或多个对象进行合并,形成一个新的对象。 var targetObj = {}; var sourceObj1 = { name: ‘Lucy’, age:…

    jquery 2023年5月27日
    00
  • jQWidgets jqxTooltip position属性

    以下是关于 jQWidgets jqxTooltip 组件中 position 属性的详细攻略。 jQWidgets jqxTooltip position 属性 jQWidgets jqxTooltip 组件的 position 属性用于设置提示框的位置。可以使用该属性来提示框相对于目标元素的位置。 语法 $(‘#tooltip’).jqxTooltip(…

    jquery 2023年5月11日
    00
  • 浅析Ajax语法

    下面我会详细讲解“浅析 Ajax 语法”的攻略。在本文中我将向你解释什么是 Ajax,以及如何使用它来实现动态 Web 应用程序。 什么是 Ajax? Ajax 是 Asynchronous JavaScript and XML(异步 JavaScript 和 XML)的首字母缩写。简单来说,它是一种使用 Web 技术,允许网页在不刷新的情况下更新某些内容的…

    jquery 2023年5月28日
    00
  • jQWidgets jqxNavBar orientation属性

    以下是关于 jQWidgets jqxNavBar 组件中 orientation 属性的详细攻略。 jQWidgets jqxNavBar orientation 属性 jQWidgets jqxNavBar 组件的 orientation 属性用于设置导航栏的方向。该属性可以是字符串,可选值为 ‘horizontal’ 或 ‘vertical’。 语法 …

    jquery 2023年5月12日
    00
  • jQWidgets jqxMenu itemclick事件

    以下是关于 jQWidgets jqxMenu 组件中 itemclick 事件的详细攻略。 jQWidgets jqxMenu itemclick 事件 jQWidgets jqxMenu 组件的 itemclick 事件是在菜单项被单击时触发的事件。您可以使用该事件来执行一些操作,例如显示相关内容、执行相关操作等。 语法 $(‘#menu’).on(‘i…

    jquery 2023年5月12日
    00
  • jQWidgets jqxGrid cellendedit事件

    以下是关于“jQWidgets jqxGrid cellendedit事件”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的 cellendedit 事件在元格编辑完成后发。事件可用于在单元格编辑完成后执行一些操作。 完整攻略 以下是 jqxGrid 控 `cellendedit 事件的完整攻略: 监听 cellendedit 事件 $(&quo…

    jquery 2023年5月10日
    00
  • jQWidgets jqxTagCloud maxFontSize属性

    下面就是关于 jQWidgets jqxTagCloud maxFontSize 属性的详细讲解: 什么是 jQWidgets jqxTagCloud? jQWidgets jqxTagCloud 是一个基于 jQuery 和 jQWidgets UI 库的标签云插件,能够让用户以视觉化的方式展示一系列标签,支持多种显示效果和定制选项。其中,maxFontS…

    jquery 2023年5月12日
    00
  • ASP.NET使用SignalR2实现服务器广播

    让我为你详细讲解“ASP.NET使用SignalR2实现服务器广播”的完整攻略。 一、准备工作 安装 Visual Studio 软件; 安装 Microsoft.AspNet.SignalR NuGet 包; 在 Global.asax.cs 中启用 SignalR,添加以下代码: using System; using System.Collection…

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