如何为HTML5和CSS3编程添加到jQuery对象的事件

时间:2020-02-23 14:46:00  来源:igfitidea点击:

jQuery库对JavaScript添加了另一个非常强大的函数。
它允许HTML5和CSS3程序员轻松地将事件安装到任何jQuery对象。
看看hover.html。

将光标移动到任何列表项时,该项目周围会出现边框。
这不是在普通CSS中实现的困难效果,但jQuery甚至更容易。

如何添加悬停事件

查看代码以查看它是如何工作的:

<!DOCTYPE html>
<html lang="en">
<head>
 <title>hover.html</title>
 <meta charset="UTF-8">
 <script type = "text/javascript"
   src = "jquery-1.10.2.min.js"></script>
 <script type = "text/javascript">
 $(init);
 function init(){
  $("li").hover(border, noBorder);
 } //end init
 function border(){
  $(this).css("border", "1px solid black");
 }
 function noBorder(){
  $(this).css("border", "0px none black");
 }
 </script>
</head>
<body>
 <h1>Hover Demo</h1>
 <ul>
  <li>alpha</li>
  <li>beta</li>
  <li>gamma</li>
  <li>delta</li>
 </ul>
</body>
</html>

HTML很简单。
它只是一个无序列表。
JavaScript并不是很复杂。
它由三个单行函数组成:

  • 当文档准备就绪时调用init()。它使所有列表项的jQuery对象并将事件添加到它们。hover()函数接受两个参数:

  • 第一个是当光标悬停在对象上时要调用的函数。

  • 第二个是在光标离开对象时要调用的函数。

  • border()在当前元素周围绘制边框。 $(this)标识符用于指定当前对象。

  • noborder()是与border()函数非常相似的函数,但它从当前对象中删除边框。

在此示例中,使用了三种不同的函数。
许多jQuery程序员更喜欢使用匿名函数(有时被称为Lambda函数),以在一条长线中括起整个函数:

$("li").hover(
  function(){
   $(this).css("border", "1px solid black");
  },
  function(){
   $(this).css("border", "0px none black");
  }
  );

请注意,这仍然是技术上是单线代码。
我们可以立即构建其需要的位置,而不是引用已创建的两个函数。
每个函数定义都是悬停()方法的参数。

如果我们是计算机科学家,我们可能会争辩说这不是Lambda函数的完美示例,并且我们将是正确的。
重要的是要注意到函数规划的一些思想(如Lambda函数)蔓延到主流Ajax编程,这是一个令人兴奋的发展。

动态修改class

jQuery支持另一个精彩的函数。
我们可以定义CSS样式,然后动态地从元素添加或者删除该样式。

该代码显示这种函数的简单性是添加:

<!DOCTYPE html>
<html lang="en">
<head>
 <title>class.html</title>
 <meta charset="UTF-8">
 <style type = "text/css">
  .bordered {
  border: 1px solid black;
  }
 </style>
 <script type = "text/javascript"
   src = "jquery-1.10.2.min.js"></script>
 <script type = "text/javascript">
 $(init);
 function init(){
  $("li").click(toggleBorder);
 } //end init
 function toggleBorder(){
  $(this).toggleClass("bordered");
 }
 </script>
</head>
<body>
 <h1>Class Demo</h1>
 <ul>
  <li>alpha</li>
  <li>beta</li>
  <li>gamma</li>
  <li>delta</li>
 </ul>
</body>
</html>

以下是如何制作这个程序:

  • 从一个基本HTML页面开始。
    所有有趣的东西都发生在CSS和JavaScript中,因此页面的实际内容并不重要。

  • 创建要添加和删除的类。
    我们可以构建一个名为CSS类,即只绘制元素周围的边框。当然,如果我们愿意,我们可以使用各种格式进行更复杂CSS类。

  • 链接init()方法。
    当我们开始看时,大多数jQuery应用程序需要某种初始化。我们可以调用第一个函数。在里面()

  • 每当用户单击列表项时调用ToggleBorder()函数。
    init()方法只是设置事件处理程序。只要列表项接收到单击事件(即,单击),应激活ToggleBorder()函数。 ToggleBorder()函数,嗯,切换边框。
    jQuery有几种用于操纵元素类的方法:

  • addclass()将类分配给元素。

  • removeClass()从元素中删除类定义。

  • toggleclass()切换类(如果它当前未添加或者否则删除,则添加它)。