jQuery Tabs Tutorial

Tabs are easy to implement and can be built to work with your existing markup. This guide will walk through the process.


Writing the Markup

Lets start by writing our markup as if our visitor doesn‘t even have JavaScript enabled. Even if you do not wish to support users without JavaScript, it is still a good pattern to follow to exercise separation of concerns.

  <ul class=‘tabs‘>
    <li><a href=‘#tab1‘>Tab 1</a></li>
    <li><a href=‘#tab2‘>Tab 2</a></li>
    <li><a href=‘#tab3‘>Tab 3</a></li>
  </ul>
  <div id=‘tab1‘>
    <p>Hi, this is the first tab.</p>
  </div>
  <div id=‘tab2‘>
    <p>This is the 2nd tab.</p>
  </div>
  <div id=‘tab3‘>
    <p>And this is the 3rd tab.</p>
  </div>

I used fragment identifiers (#tab1#tab2#tab3) for the href values in the navigation. Each element containing a tab‘s content is given an ID that corresponds to a fragment identifier. This way the links are semantic and continue to be functional even if the visitor has JavaScript disabled.

JavaScript provides direct access to the fragment identifier, or hash, for anchor element objects and the window.location object by using their hash property.

Writing the jQuery

Rather than describing the code, I am just going to include it with comments that explain each step.

 $(‘ul.tabs‘).each(function(){
    // For each set of tabs, we want to keep track of
    // which tab is active and it‘s associated content
    var $active, $content, $links = $(this).find(‘a‘);

    // If the location.hash matches one of the links, use that as the active tab.
    // If no match is found, use the first link as the initial active tab.
    $active = $($links.filter(‘[href="‘+location.hash+‘"]‘)[0] || $links[0]);
    $active.addClass(‘active‘);

    $content = $($active[0].hash);

    // Hide the remaining content
    $links.not($active).each(function () {
      $(this.hash).hide();
    });

    // Bind the click event handler
    $(this).on(‘click‘, ‘a‘, function(e){
      // Make the old tab inactive.
      $active.removeClass(‘active‘);
      $content.hide();

      // Update the variables with the new link and content
      $active = $(this);
      $content = $(this.hash);

      // Make the tab active.
      $active.addClass(‘active‘);
      $content.show();

      // Prevent the anchor‘s default click action
      e.preventDefault();
    });
  });

  

See the complete document. I used jQuery‘s .on() method for event binding, so be sure to use jQuery 1.7 or higher.

时间: 2024-10-02 03:43:05

jQuery Tabs Tutorial的相关文章

jquery Tabs选项卡切换

效果: HTML部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jquery Tabs选项卡切换</title> </head> <body> <div class="country-profile"> <!--tabs--> &

自己手写简约实用的Jquery tabs插件(基于bootstrap环境)

一直想改版网站首页的图书展示部分,以前的展示是使用BootStrap的传统的collapse,网页篇幅占用大,也不够美观,操作也相对来说比较麻烦.于是有了自己利用Jquery来做一个图书展示的tabs的想法,之前也在网上找了半天,并不是很满意. 下面来看看我的实现过程: 首先是HTML部分,HTML部分按照结构简约,突出干货的思路来设计.选项卡使用了列表,在列表中插入了超链接,当然这里的超链接只是作为按钮使用的,当点击任何一个链接,就切换到对应的选项卡.选项卡的内容部分直接使用DIV,将图书的展

获取JQuery UI tabs中被选中的tabs的方法

JQuery标签事件处理实例 如果你正在使用JQuery tabs而且想从基本的功能扩展到自定义的功能,这是你最好知道如何处理JQuery的点击事件. 在这篇文章中: 1.回顾如何添加当tab被点击时的事件处理 背景: 需要了解的是,JQuery在不断修正的,很多有用的信息只针对于某一特定的老版本,JQuery已经不在支持. 在这种情况下,JQuery-ui对标签页的事件监听的支持从1.9.x的show命令切换到JQuery-UI 1.10.x的activate命令. 处理一个Tab的点击事件在

241个jquery插件—jquery插件大全

jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascrīpt框架.其经典的Slogan是“Write Less, Do more”(写更少的代码,做更多的事情).jQuery是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+). jQue

30个实用的jQuery选项卡/导航教程推荐

很多网站设计中都使用了选项卡(tabs),在制作选项卡时应用jQuery能够实现很多炫酷的过渡和动画效果.本文为你介绍30个实用的jQuery选项卡教程,希望对你有帮助. 1. Animated Tabbed Content With jQuery 选项卡被现代网站普遍应用,但大多数形式呆板.本教程逐步为你讲授如何实现选项卡动画切换效果. 示例 2. Tab Navigation with Smooth Horizontal Sliding Using jQuery 本教程为你展示如何创建一个水

经典海量jQuery插件

海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面. 其中有些已经无法访问,或许是文件移除,或许是被封锁.大家分享的东西,没什么特别的可说的,唯有感谢无私分享的人们. 猫嗔提醒大家在使用的时候注意jQuery包的版本问题,最好是使用相同的版本,因为使用了高版本很有可能出现或多或少的问题.并且其中英文插件在转换成中文时注意编码,推荐utf-8. jQuery插件-文件上传(File upload)Ajax File Upload.jQU

强烈推荐240多个jQuery插件提供下载

jQuery 是继 prototype 之后又一个优秀的 Javascript 框架.其宗旨是-写更少的代码,做更多的事情.它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及 的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+). jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents.events.实现动画效果,并且方便地为网站提供 AJAX

jQuery重要插件!

原文发布时间为:2009-08-05 -- 来源于本人的百度文章 [由搬家工具导入] 强烈推荐:240多个jQuery插件 概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery 是一个快速的,简洁的 javaS

jquery插件下载地址

以下是本人收集的jquery插件下载地址: .............版本自行选择. jquery官网:http://jquery.com/ jquery.validate.js 官网下载地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ jquery.form.js 下载地址:http://malsup.com/jquery/form/#download/ jquery.cookie.js 下载地址:https:/