加载中...

toggle()1.9-


概述    .toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] )

返回值:jQuery

描述:绑定两个或多个处理程序绑定到匹配的元素,用来执行在交替的点击。

  • V : 1.0.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] )

    • handler(eventObject)
      类型: Function()
      第一数(奇数)次点击时要执行的函数。
    • handler(eventObject)
      类型: Function()
      第二数(偶数)次点击时要执行的函数。
    • handler(eventObject)
      类型: Function()
      更多次点击时要执行的函数。

注意: 这个方法在jQuery 1,8中宣告过时,在jQuery 1.9中已经移除;jQuery animation 也有一个名为.toggle()方法。哪一个被调用取决于传递的参数的设置。

.toggle()方法的处理程序绑定一个click事件,因此,对于 click 事件适用的规则,同样也适用于该事件。

举例来说,请看下面的HTML:

For example, consider the HTML:
<div id="target">
  Click here
</div>

这个事件处理程序可以绑定到<div>:

$('#target').toggle(function() {
  alert('First handler for .toggle() called.');
}, function() {
  alert('Second handler for .toggle() called.');
});

这样元素被点击多次,信息提示:

First handler for .toggle() called.
Second handler for .toggle() called.
First handler for .toggle() called.
Second handler for .toggle() called.
First handler for .toggle() called.

如果提供两个以上的处理函数,.toggle()将在它们中循环。例如,如果有三个处理程序,那么第一次点击,点击第四,第七点击后第一个处理程序将被调用等等。

.toggle() 方法提供了方便。 这是比较简单的手法来实现相同的行为,并且这可能是必要的,如果假设内置的.toggle()被证明是限制的。例如,如果在相同的元素上绑定了两个 .toggle()事件,那么无法保证它们能正确的工作。因为 .toggle() 内部使用了 click 进行处理,所以我们必须先解除 click 事件的绑定,移除 .toggle() 的附属行为。这样的话,其它的 click 处理,就会出现麻烦。在 ..toggle() 的实现中,同样调用了 .preventDefault(),因此,链接将不会被触发。并且,如果已经调用了元素上的 .toggle()事件,那么,按钮的点击事件也不会被触发。

示例

实例

点击列表项,切换它们的高亮效果。

<!DOCTYPE html>
<html>
<head>
  <style>
  ul { margin:10px; list-style:inside circle; font-weight:bold; }
  li { cursor:pointer; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <ul>
    <li>Go to the store</li>
    <li>Pick up dinner</li>
    <li>Debug crash</li>
 
    <li>Take a jog</li>
  </ul>
<script>
    $("li").toggle(
      function () {
        $(this).css({"list-style-type":"disc", "color":"blue"});
      },
      function () {
        $(this).css({"list-style-type":"disc", "color":"red"});
      },
      function () {
        $(this).css({"list-style-type":"", "color":""});
      }
    );
 
</script>
 
</body>
</html>

运行一下

实例

切换表格的样式:

$("td").toggle(
  function () {
    $(this).addClass("selected");
  },
  function () {
    $(this).removeClass("selected");
  }
);


还没有评论.