Notification texts go here Contact Us Buy Now!

jQuery EasyTabs jQuery plugin

jQuery Plugin easy tabs download and demos

The jQuery EasyTabs plugin has recently hit v2.3 (well, v2.3.3 by the time I got this published). New for EasyTabs this release:

See demos for each new feature below

AJAX tab content

It's been a long-time coming, and it's finally here. EasyTabs now supports loading content into panels via ajax.

EasyTabs has always placed emphasis on semantic, meaningful markup. Traditionally, markup for a tab/panel pair would look something like this:

<a href="#panel-1" class="tabs">I'm a tab</a>
<div id="panel-1">Panel content</div>

Notice that in the above example, if JavaScript is disabled, we're left with a normal anchor and anchor link in the page, which browsers understand by default.

The easiest way to modify a tab in order to specify that it's content comes from some ajax url would have been to add an HTML5 data- attribute, such as data-ajax. However, if JS were disabled, we're now left with an anchor link to an empty div on the page, with the actual url hidden behind a function-less data attribute.

So instead, I took a different approach with EasyTabs. If we want content for a tab to be loading via ajax, we put our ajax url in the href attribute where it belongs, and move the id of the target panel to a data attribute called data-target.

<a href="/some/ajax/path.html" data-target="#panel-1" class="tabs">I'm a tab</a>
<div id="panel-1">Panel content</div>

We can also load a page fragment with something like:

<a href="/some/ajax/path.html #some-element" data-target="#panel-1" class="tabs">I'm a tab</a>

By default, EasyTabs will load the content via ajax the first time the tab is clicked, and then hide/show the loaded content in the panel for each tab-change thereafter. If we want to have the tab re-request the ajax content each time it's clicked, we can set `{ cache: false }` in the easytabs options.

And finally, there are two new event hooks to which we can bind custom functionality, which will only be fired for ajax tabs: `easytabs:ajax:beforeSend` and `easytabs:ajax:complete`.

For example:

$('#container')
    .bind('easytabs:ajax:beforeSend', function(e, clicked, panel){
      var $this = $(clicked);
      $this.data('label', $this.html());
      $this.html('Loading...');
    })
    .bind('easytabs:ajax:complete', function(e, clicked, panel, response, status, xhr) {
      var $this = $(clicked);
      $this.html($this.data('label'));
      if (status == "error") {
        var msg = "Sorry but there was an error: ";
        $("#error").html(msg + xhr.status + " " + xhr.statusText);
      }
    });

Nested tabs and anchors

We've always been able to have multiple instances of EasyTabs on one page. However, we couldn't previously deep-link to a tab-set which was nested inside the panel of another tab. That is no longer a problem.

So for example, if we had markup such as this:

$('#tabs').easytabs();
$('#subtabs').easytabs();
<div id="#tabs">
  <a href="#panel-1" class="tabs">Tab 1</a>
  <a href="#panel-2" class="tabs">Tab 2</a>
  <div id="panel-1">Panel content</div>
  <div id="panel-2">
    <div id="#subtabs">
      <a href="#subpanel-1" class="tabs">Subtab 1</a>
      <a href="#subpanel-2" class="tabs">Subtab 2</a>
      <div id="subpanel-1">Panel content</div>
      <div id="subpanel-2">Link to me!</div>
    </div>
  </div>
</div>

We can now bookmark Subtab 2 directly, by sharing `http://example.com/page#subpanel-2`, and EasyTabs will automatically open panel-2 and subpanel-2 by default when the page loads.

Non-standard markup for panels

Panels no longer need to be div element, they can now be any markup we want. For example, the following now works:

<ul>
  <li><a href="#tab1">Tab 1</a></li>
  <li><a href="#tab2">Tab 2</a></li>
</ul>
<fieldset id="tab1">
  <label>Tab 1 input</label>
  <input type="text" />
</fieldset>
<fieldset id="tab2">
  <label>Tab 2 input</label>
  <input type="text" />
</fieldset>

Get it now!

Check out the updated plugin homepage to download and view the docs.

About the Author

Cssmoz for learning web design and development, get latest blogger tips, Facebook tips, learn work prayers for beginners also get HTML templates, Blogger templates, Wordpress themes and more!
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.
NextGen Digital Welcome to WhatsApp chat
Howdy! How can we help you today?
Type here...