Fix multiple lang blocks.

This commit is contained in:
Jake
2021-06-06 19:18:02 -07:00
parent 6eeb0d58f5
commit 2981701d59

View File

@@ -49,39 +49,53 @@ all copies or substantial portions of the Software.
jQuery.fn.minitabs = function(speed,effect) { jQuery.fn.minitabs = function(speed,effect) {
function saveToLocal(lang){ function saveToLocal(lang){
console.log("saving language > " + lang);
window.localStorage.setItem('user-preferred-devlanguage', lang); window.localStorage.setItem('user-preferred-devlanguage', lang);
} }
function setTabsToFirst(id){
console.log("Setting tabs "+id+" toFirst ")
$(".multicode[id='"+id+"']" + ">DIV").hide();
$(".multicode[id='"+id+"']" + ">UL>LI>A").removeClass("current");
//
$(".multicode[id='"+id+"']" + ">DIV:first").show();
$(".multicode[id='"+id+"']" + ">UL>LI>A:first").addClass("current");
}
function setTabsToLang(id, lang){
console.log("Setting tabs "+id+" TO LANG >> " + lang)
$(".multicode[id='"+id+"']" + ">DIV").hide();
$(".multicode[id='"+id+"']" + ">UL>LI>A").removeClass("current");
//
$(".multicode[id='"+id+"']" + ">UL>LI>A[class="+lang+"]").addClass("current");
$(".multicode[id='"+id+"']" + ">DIV."+lang).show();
}
function showSelectedTabFromSaved(id){ function showSelectedTabFromSaved(id){
// get any data from local stores. var savedValue = window.localStorage.getItem('user-preferred-devlanguage');
$savedValue = window.localStorage.getItem('user-preferred-devlanguage');
// show all tabs if value present if(savedValue !== null) {
if($savedValue !== null) { showSlectedTab(savedValue);
showSlectedTab($savedValue);
}else { }else {
$(id + ">DIV:gt(0)").hide(); setTabsToFirst(id);
$(id + ">UL>LI>A:first").addClass("current");
} }
} }
function showSlectedTab(lang) { function showSlectedTab(lang) {
// Hide all. $('.multicode').each(function() {
// Tab heads var hasLang = false;
$(".multicode>UL>LI>A").removeClass("current"); $(this).find(">UL>LI>A").each(function() {
// Tab contents if ($(this).attr('class') == lang ) {
$(".multicode>DIV").hide(speed); hasLang = true;
}
})
$(this).blur(); if(hasLang) {
//show selcted. console.log("LANG VALUE> > " + lang)
$(".multicode>UL>LI>."+lang).addClass("current"); setTabsToLang($(this).attr('id'), lang);
$(".multicode>DIV."+lang).show(speed); } else {
setTabsToFirst($(this).attr('id'));
// TODO: Only add/remove on samples that DO contain that value. }
// Example })
// if javascript is lang.
// only add current if the UL has javascript in the tabs.
// Otherwise this will hide all tabs and not show anything.
// save in localstorage. // save in localstorage.
saveToLocal(lang); saveToLocal(lang);
@@ -90,31 +104,14 @@ jQuery.fn.minitabs = function(speed,effect) {
this.each(function() { this.each(function() {
var id = "#" + $(this).attr('id') var id = "#" + $(this).attr('id')
//Use saved value or set to first tab //Use saved value or set to first tab
showSelectedTabFromSaved(id); showSelectedTabFromSaved($(this).attr('id'));
//Add click on each tab //Add click on each tab
$(id + ">UL>LI>A").click( $(id + ">UL>LI>A").click(
function(){ function(){
showSlectedTab($(this).attr('class')) if(!$(this).hasClass("current") ){
showSlectedTab($(this).attr('class'))
//Old }
// var re = /([_\-\w]+$)/i;
// var target = $('#' + re.exec(this.href)[1]);
// var old = $(id + ">DIV");
// switch (effect) {
// case 'fade':
// old.fadeOut(speed).fadeOut(speed);
// target.fadeIn(speed);
// break;
// case 'slide':
// old.slideUp(speed);
// target.fadeOut(speed).fadeIn(speed);
// break;
// default :
// old.hide(speed);
// target.show(speed)
// }
return false; return false;
} }
); );