при перезагрузке страницы мне нужно отображение этой же(текущей) вкладки, но отображается всегда первая. прописываю скрипт на сайте: Код (Javascript): <script type="text/javascript"> $(function() { $('li[data-toggle="tab"]').on('shown.bs.tab', function () { // сохраним последнюю вкладку localStorage.setItem('lastTab', $(this).attr("rel")); }); //перейти к последней вкладки, если она существует: var lastTab = localStorage.getItem('lastTab'); if (lastTab) { $('li[rel="' + lastTab + '"]').tab('show'); } else { // установить первую вкладку активной если lasttab не существует $('li[data-toggle="tab"]:first').tab('show'); } }); </script> на чистом проекте тестирую (там с тегами <a data-toggle="tab"> все работает и там в место $(this).attr("rel")) применял $(this).attr("href"))), все работает с bootstrap вкладками, но использую на рабочем проекте где еще применяется другой скрипт на вкладки, перестает работать, ошибки не выдает в браузере. подскажите в чем может быть ошибка несовместимости при использовании localStorage скрипт: Код (Javascript): <script type="text/javascript"> $(function() { $('li[data-toggle="tab"]').on('shown.bs.tab', function () { // сохраним последнюю вкладку localStorage.setItem('lastTab', $(this).attr("rel")); }); //перейти к последней вкладки, если она существует: var lastTab = localStorage.getItem('lastTab'); if (lastTab) { $('li[rel="' + lastTab + '"]').tab('show'); } else { // установить первую вкладку активной если lasttab не существует $('li[data-toggle="tab"]:first').tab('show'); } }); </script> и скрипта для работы со вкладками на разных расширения экрана: Код (Javascript): (function($){ //Attach this new method to jQuery $.fn.extend({ //This is where you write your plugin's name champ: function(options) { //Iterate over the current set of matched elements var defaults = { selector:"tab_wrapper", plugin_type: "tab", side:"", active_tab:"1", controllers:"false", ajax:"false", show_ajax_content_in_tab:"false", content_path:"false" } var obj = $.extend(defaults, options); var li_rel = 1, div_rel = 1; return this.each(function() { var plugin_type = obj.plugin_type; var side = obj.side; var active_tab = obj.active_tab; var controllers = obj.controllers; var ajax = obj.ajax; var show_ajax_content_in_tab = obj.show_ajax_content_in_tab; var content_path = obj.content_path; var tab_content_selector = $(this).find(" > div > div.tab_content"); var tab_selector = $(this).find(" >ul li"); var parent = $(this); var controller_parent = $(".controller").closest(".tab_wrapper"); var con_siblings; parent.addClass(side+"_side"); if (controllers == "true") { parent.addClass("withControls"); parent.append("<div class='controller'><span class='previous'>previous</span><span class='next'>next</span></div>"); } if (plugin_type == "accordion") { //alert(34); parent.addClass("accordion"); parent.removeClass(side+"_side"); parent.removeClass("withControls"); $(".controller",parent).remove(); } if (ajax == "true") { $.ajax({url: content_path, success: function(result){ $(" .tab_content.tab_"+ show_ajax_content_in_tab, parent).html(result); }}); $( document ).ajaxError(function( event, request, settings ) { $(" .tab_content.tab_"+ show_ajax_content_in_tab, parent).prepend( "<h4 class='error'>Error requesting page " + settings.url + "</h2>" ); }); } function hide_controls(parent){ if(parent.find(" >ul li:eq(0)").hasClass("actives")){ $(".controller .previous", parent).hide(); } else{ $(".controller .previous", parent).show(); } if(parent.find(" >ul li").last().hasClass("actives")){ $(".controller .next", parent).hide(); } else{ $(".controller .next", parent).show(); } } $(".controller .previous", $(this)).click( function(){ con_siblings = $(this).closest(".controller"); con_siblings.siblings("ul" ).find("li.actives").prev().trigger("click"); hide_controls(controller_parent); }); $(".controller .next", $(this)).click( function(){ con_siblings = $(this).closest(".controller"); con_siblings.siblings("ul" ).find("li.actives").next().trigger("click"); hide_controls(controller_parent); }); $(this).find(" >ul li").removeClass("actives"); $(this).find(" > div > div.tab_content").removeClass("actives"); if(active_tab==""){ $(this).find(" >ul li:eq(0)").addClass("actives").show(); //set active tab on load $(this).find(" > div > div.tab_content:eq(0)").addClass("actives").show(); //set active tab on load hide_controls(parent); } else{ $(this).find(" >ul li:eq("+(active_tab-1)+")").addClass("actives").show(); //set active tab on load $(this).find(" > div > div.tab_content:eq("+(active_tab-1)+")").addClass("actives").show(); //set active tab on load hide_controls(parent); } tab_content_selector.first().addClass("first"); tab_content_selector.last().addClass("last"); // add class to content div tab_content_selector.each(function(){ var add_relation = "tab_"+div_rel; $(this).addClass(add_relation); $(this).attr("alt", add_relation); div_rel++; }); // add relation attr to li and generate accordion header for mobile tab_selector.each(function(){ var accordian_header = $(this).text(); var add_relation = "tab_"+li_rel; var get_parent = $(this).closest(".tab_wrapper"); $(this).attr("rel", add_relation); var current_tab_class = $(this).attr("class"); tab_content_selector.each(function(){ if($(this).hasClass(add_relation)){ get_parent.find(" > div > div.tab_content." + add_relation).before("<div alt='" + add_relation + "' class='accordian_header " + add_relation + ' ' + current_tab_class +"'>" + accordian_header + "<span class='arrow'></span></div>"); } }); li_rel++; }); // on click of accordion header slideUp/DlideDuwon respective content $(".accordian_header").click(function(){ var clicked_header = $(this).attr("alt"); var content_status = $(this).next(".tab_content").css("display"); var get_closest_parent = $(this).closest(".tab_wrapper"); if (content_status == "none") { $(".accordian_header").removeClass("actives"); $(this).addClass("actives"); tab_content_selector.removeClass("actives").slideUp(); get_closest_parent.find(" > div > div.tab_content."+clicked_header).addClass("actives").slideDown(); } }); // on click of tab hide/show respective content tab_selector.click(function(){ var clicked_tab = $(this).attr("rel"); var get_new_closest_parent = $(this).closest(".tab_wrapper"); get_new_closest_parent.find(" .accordian_header").removeClass("actives"); get_new_closest_parent.find(" .accordian_header."+clicked_tab).addClass("actives"); tab_content_selector.removeClass("actives").hide(); get_new_closest_parent.find(" > div > div.tab_content." +clicked_tab).addClass("actives").show(); tab_selector.removeClass("actives"); $(this).addClass("actives"); hide_controls(get_new_closest_parent); }); }); } }); })(jQuery); в javascript не силен особо, подскажите что может перебивать localStorage.
попробуйте в своем скрипте переменной другое имя дать, не lastTab а lastTabNew например. А так, да - отладка с просмотром локал стореджа наше все )
попробовал, без изменений, буду отладку делать. может что то найду. Там скорее всего скрипт задает свои параметры, а скрипт локал сторедж их не перебивает.
Всем спасибо! решил возникшую ошибку. надо было заменить: Код (Javascript): $('li[rel="' + lastTabNew + '"]').tab('show'); на этот код: Код (Javascript): $('li[href="' + lastTabNew + '"]').trigger('click'); Вроде все заработало