jQuery 中 `on`、`live` 和 `bind` 之间有什么区别?


jQuery on() 方法

on( events [, selector ] [, data ], handler ) 方法将处理程序绑定到所有当前和未来匹配元素的事件(如 click)。它还可以绑定自定义事件。

以下是此方法使用所有参数的说明:

  • events − 用空格分隔的事件类型。
  • selector − 选择器字符串
  • data − 传递给 event.data 中事件处理程序的数据
  • handler − 要绑定到每个匹配元素集事件上的函数

示例

您可以尝试运行以下代码以了解如何使用 on() 方法:

<html>

   <head>
      <title>jQuery on() method</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
       
      <script>
         $(document).ready(function() {
            $('div').on('click', function( event ){
               alert('Hi there!');
            });
         });
      </script>
       
      <style>
         .div {
             margin:10px;
             padding:12px;
             border:2px solid #666;
             width:60px;
         }
      </style>
   </head>
   
   <body>
   
      <p>Click on any square below to see the result:</p>
       
      <div class = "div" style = "background-color:blue;"></div>
      <div class = "div" style = "background-color:green;"></div>
      <div class = "div" style = "background-color:red;"></div>
       
   </body>
</html>

在线演示

jQuery live() 方法

live( type, fn ) 方法将处理程序绑定到所有当前和未来匹配元素的事件(如 click)。它还可以绑定自定义事件。

以下是此方法使用所有参数的说明:

  • type− 事件类型。
  • fn− 要绑定到每个匹配元素集事件上的函数

示例

您可以尝试运行以下代码以了解如何在 jQuery 中使用 live() 方法。

在线演示

<html>
<head>
<title>jQuery live() method</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
   <script>
   
   $(document).ready(function() {

     $('div').live('click', function( event ){
         alert('Hi there!');
     });

   });

   </script>
   <style>
      .div{
          margin:10px;
          padding:12px;
          border:2px solid #666;
          width:60px;
      }
  </style>
</head>
<body>
   <p>Click on any square below to see the result:</p>
   <div class="div" style="background-color:blue;"></div>
   <div class="div" style="background-color:green;"></div>
   <div class="div" style="background-color:red;"></div>
</body>
</html>

注意 − jQuery live() 方法在 jQuery 1.7 中已弃用。它最终在 jQuery 1.9 中被移除。要运行以下程序,请使用 1.7 之前的 jQuery 版本。

jQuery bind() 方法

bind( type, [data], fn ) 方法将处理程序绑定到每个匹配元素的一个或多个事件(如 click)。它还可以绑定自定义事件。

以下是此方法使用所有参数的说明:

  • type − 用空格分隔的一个或多个事件类型。
  • data − 这是可选参数,表示作为 event.data 传递给事件处理程序的其他数据。
  • fn − 要绑定到每个匹配元素集事件上的函数。

示例

您可以尝试运行以下代码以了解如何使用 bind() 方法:

在线演示

<html>

   <head>
      <title>jQuery bind() method</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
       
      <script>
         $(document).ready(function() {
            $('div').bind('click', function( event ){
               alert('Hi there!');
            });
         });
      </script>
       
      <style>
         .div {
             margin:10px;
             padding:12px;
             border:2px solid #666;
             width:60px;
         }
      </style>
   </head>
   
   <body>
   
      <p>Click on any square below to see the result:</p>
       
      <div class = "div" style = "background-color:blue;"></div>
      <div class = "div" style = "background-color:green;"></div>
      <div class = "div" style = "background-color:red;"></div>
       
   </body>
</html>

更新于: 2020年2月17日

284 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告