jQuery 学习6 操纵元素显示效果的函数

复制代码 代码如下:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

  <html>

  <head>

  <title>Collapsible List — Take 1</title>

  <link rel="stylesheet" type="text/css" href="../common.css">

  <script type="text/javascript"

  src="../scripts/jquery-1.2.1.js"></script>

  <script type="text/javascript">

  $(function(){

  $('li:has(ul)')

  .click(function(event){

  if (this == event.target) {

  if ($(this).children().is(':hidden')) {

  $(this)

  .css('list-style-image','url(minus.gif)')

  .children().show();

  }

  else {

  $(this)

  .css('list-style-image','url(plus.gif)')

  .children().hide();

  }

  }

  return false;

  })

  .css('cursor','pointer')

  .click();

  $('li:not(:has(ul))').css({

  cursor: 'default',

  'list-style-image':'none'

  });

  });

  </script>

  <style>

  fieldset { width: 320px }

  </style>

  </head>

  <body>

  <fieldset>

  <legend>Collapsible List — Take 1</legend>

  <ul>

  <li>Item 1</li>

  <li>Item 2</li>

  <li>

  Item 3

  <ul>

  <li>Item 3.1</li>

  <li>

  Item 3.2

  <ul>

  <li>Item 3.2.1</li>

  <li>Item 3.2.2</li>

  <li>Item 3.2.3</li>

  </ul>

  </li>

  <li>Item 3.3</li>

  </ul>

  </li>

  <li>

  Item 4

  <ul>

  <li>Item 4.1</li>

  <li>

  Item 4.2

  <ul>

  <li>Item 4.2.1</li>

  <li>Item 4.2.2</li>

  </ul>

  </li>

  </ul>

  </li>

  <li>Item 5</li>

  </ul>

  </fieldset>

  </body>

  </html>

  上面实现列表的折叠已经很简单了,但jQuery提供了一个切换元素状态的函数toggle()。将上面红色字体的代码改为下面的代码,同样可以实现上述功能:

  $(this).children().toggle();

  $(this).css('list-style-image',

  ($(this).children().is(':hidden')) ?

  'url(plus.gif)' : 'url(minus.gif)');

  }

  以上三个函数show()、hide()、toggle()在带参数的情况下可以实现元素逐渐的显示和隐藏

  hide(speed,callback)

  show(speed,callback)

  toggle(speed,callback)

  speed:可为数字或字符串,把效果的持续时间(可选)指定为毫秒数或预定义的字符串之一:slow、normal或fast。如果省略,就不产生动画并立即在显示屏上显示元素。

  callback:回调函数(可选),在动画完成时调用。没有参数传递给这个函数,但函数上下文(this)被设置为以动画隐藏的元素。

  动画效果的可折叠列表

  

复制代码 代码如下:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

  <html>

  <head>

  <title>Collapsible List — Take 3</title>

  <link rel="stylesheet" type="text/css" href="../common.css">

  <script type="text/javascript"

  src="../scripts/jquery-1.2.1.js"></script>

  <script type="text/javascript">

  $(function(){

  $('li:has(ul)')

  .click(function(event){

  if (this == event.target) {

  $(this).css('list-style-image',

  (!$(this).children().is(':hidden')) ?

  'url(plus.gif)' : 'url(minus.gif)');

  $(this).children().toggle('slow');

  }

  return false;

  })

  .css({cursor:'pointer',

  'list-style-image':'url(plus.gif)'})

  .children().hide();

  $('li:not(:has(ul))').css({

  cursor: 'default',

  'list-style-image':'none'

  });

  });

  </script>

  <style>

  fieldset { width: 320px }

  </style>

  </head>

  <body>

  <fieldset>

  <legend>Collapsible List — Take 3</legend>

  <ul>

  <li>Item 1</li>

  <li>Item 2</li>

  <li>

  Item 3

  <ul>

  <li>Item 3.1</li>

  <li>

  Item 3.2

  <ul>

  <li>Item 3.2.1</li>

  <li>Item 3.2.2</li>

  <li>Item 3.2.3</li>

  </ul>

  </li>

  <li>Item 3.3</li>

  </ul>

  </li>

  <li>

  Item 4

  <ul>

  <li>Item 4.1</li>

  <li>

  Item 4.2

  <ul>

  <li>Item 4.2.1</li>

  <li>Item 4.2.2</li>

  </ul>

  </li>

  </ul>

  </li>

  <li>Item 5</li>

  </ul>

  </fieldset>

  </body>

  </html>