Team:ZJU-China/JS/tabs.js
From 2014.igem.org
(Difference between revisions)
(Created page with "// Wait until the DOM has loaded before querying the document $(document).ready(function () { $('ul.tabs').each(function () { // For each set of tabs, we want to keep...") |
|||
Line 4: | Line 4: | ||
// For each set of tabs, we want to keep track of | // For each set of tabs, we want to keep track of | ||
// which tab is active and it's associated content | // which tab is active and it's associated content | ||
- | var $active, $content, $links = $(this).find('a'); | + | var $active, $content, $links = $(this).find('a'), |
+ | $nav = $(this), | ||
+ | $pan = $('div.pan').filter('[href="#' + $(this).attr('id') + '"]'); | ||
// If the location.hash matches one of the links, use that as the active tab. | // If the location.hash matches one of the links, use that as the active tab. | ||
Line 26: | Line 28: | ||
// Update the variables with the new link and content | // Update the variables with the new link and content | ||
$active = $(this); | $active = $(this); | ||
+ | |||
$content = $(this.hash); | $content = $(this.hash); | ||
Line 35: | Line 38: | ||
e.preventDefault(); | e.preventDefault(); | ||
}); | }); | ||
+ | if ($pan !== undefined) { | ||
+ | $pan.on('click', 'img.pan', function (e) { | ||
+ | // Make the old tab inactive. | ||
+ | var $pick = $nav.find('a').filter('[href="' + $(this).attr("href") + '"]'); | ||
+ | //console.log("this",$(this).attr("href"), $nav, $pick); | ||
+ | $active.removeClass('active'); | ||
+ | $content.hide(); | ||
+ | |||
+ | // Update the variables with the new link and content | ||
+ | $active = $pick; | ||
+ | |||
+ | $content = $($pick[0].hash); | ||
+ | |||
+ | // Make the tab active. | ||
+ | $active.addClass('active'); | ||
+ | $content.show(); | ||
+ | |||
+ | // Prevent the anchor's default click action | ||
+ | e.preventDefault(); | ||
+ | }); | ||
+ | } | ||
}); | }); | ||
+ | /*$('div.pan').each(function () { | ||
+ | var $nav = $($(this).attr('href')); | ||
+ | var $active, $content, $links = $nav.find('a'); | ||
+ | |||
+ | $(this).on('click', 'img', function (e) { | ||
+ | // Make the old tab inactive. | ||
+ | $active | ||
+ | $active.removeClass('active'); | ||
+ | $content.hide(); | ||
+ | var $pick = $nav.find($(this).attr("href"))[0]; | ||
+ | //console.log($active); | ||
+ | console.log($(this)); | ||
+ | // Update the variables with the new link and content | ||
+ | $active = $pick; | ||
+ | $content = $pick.hash; | ||
+ | |||
+ | // Make the tab active. | ||
+ | $active.addClass('active'); | ||
+ | $content.show(); | ||
+ | |||
+ | // Prevent the anchor's default click action | ||
+ | e.preventDefault(); | ||
+ | }); | ||
+ | });*/ | ||
}); | }); |
Latest revision as of 19:07, 17 October 2014
// Wait until the DOM has loaded before querying the document $(document).ready(function () {
$('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'), $nav = $(this), $pan = $('div.pan').filter('[href="#' + $(this).attr('id') + '"]');
// 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(); }); if ($pan !== undefined) { $pan.on('click', 'img.pan', function (e) { // Make the old tab inactive. var $pick = $nav.find('a').filter('[href="' + $(this).attr("href") + '"]'); //console.log("this",$(this).attr("href"), $nav, $pick); $active.removeClass('active'); $content.hide();
// Update the variables with the new link and content $active = $pick;
$content = $($pick[0].hash);
// Make the tab active. $active.addClass('active'); $content.show();
// Prevent the anchor's default click action e.preventDefault(); }); } }); /*$('div.pan').each(function () { var $nav = $($(this).attr('href')); var $active, $content, $links = $nav.find('a');
$(this).on('click', 'img', function (e) { // Make the old tab inactive. $active $active.removeClass('active'); $content.hide(); var $pick = $nav.find($(this).attr("href"))[0]; //console.log($active); console.log($(this)); // Update the variables with the new link and content $active = $pick; $content = $pick.hash;
// Make the tab active. $active.addClass('active'); $content.show();
// Prevent the anchor's default click action e.preventDefault(); }); });*/
});