Могу ли я остаться на той же вкладке jQuery при обновлении страницы или когда я ушел со страницы?

У меня есть базовая система JQuery вкладок собирается:

$(document).ready(function(){
  $('#tabs div.jdiv').hide();
  $('#tabs div.jdiv:first').fadeIn("slow");
  $('#tabs ul.jdiv li:first').addClass('active');
  $('#tabs ul.jdiv li a').click(function(){ 
    $('#tabs ul.jdiv li').removeClass('active');
    $(this).parent().addClass('active'); 
    var currentTab = $(this).attr('href'); 
    $('#tabs div.jdiv').hide();
    $(currentTab).fadeIn("slow");
  return false;
  });
});

<div id="tabs" style="position:relative; ">
                <ul class="jdiv">
                  <li><a href="#current-points">Current Points</a></li>
                  <li><a href="#my-details">My Details</a></li>
                  <li><a href="#prizes">Prizes</a></li>
                  <li><a href="#basket">Your sack</a></li>
                  <li><a href="#order-history">Order History</a></li>

                </ul>

            <div id="current-points" class="jdiv" style="position:relative;">
                <?php include('current-points.php');?>     
            </div> 

и т.д....

Моя проблема в том, что я планирую иметь еще один набор вкладок jQuery на одной из этих страниц, что не является проблемой, но когда они нажимают на ссылку или обновляют страницу, возможно ли остаться на той же вкладке? На родительском или дочернем наборе вкладок?

Спасибо!

 JamesG29 февр. 2012 г., 11:26
Я не использую специальный плагин для вкладок, просто обычный jQuery

Ответы на вопрос(3)

единственное решение, которое приходит мне в голову, - это использование куки, я думаю, что это единственное решение.

Если вы используете ссылку на веб-странице, с другой стороны, чтобы обновить страницу, вы можете добавить к ней привязку с открытой в данный момент вкладкой.

траницы, и все изменения будут отменены, если, конечно, вы не сохраните его где-нибудь - возможно, в качестве параметра URL?

 JamesG29 февр. 2012 г., 11:29
Окей, разум разумный. Я просто предположил, что это будет общая проблема, для которой есть определенное решение. Я попробую параметр URL. Спасибо
 T.J. Crowder29 февр. 2012 г., 11:29
Конечно, вы можете сделать это без серверных сценариев.
Решение Вопроса

ладки, поэтомуhttp://example.com/yourpage.html#current-points доставит вас кcurrent-points вкладка иhttp://example.com/yourpage.html#my-details доставит вас кmy-details Вкладка. Вы можете установить хеш, назначивlocation.hashи, конечно, вы можете прочитать это при загрузке страницы. Это также имеет огромное преимущество в том, что ваши пользователи могут добавлять закладки в закладки. Вы можете использовать путь в хэше, если у вас есть вкладки внутри вкладок (так#first/foo доставит вас кfirst вкладка и егоfoo Общий вид закладки;#first/bar доставит вас кfirst вкладка и егоbar Общий вид закладки).

Вот очень простой пример (без вложенных вкладок, но вы поняли):

Живая копия | Живой источник

HTML:

<ul id="nav">
    <li><a href="#first">First</a></li>
    <li><a href="#second">Second</a></li>
    <li><a href="#third">Third</a></li>
</ul>
<div class="tab" id="tab-first">This is first</div>
<div class="tab" id="tab-second">This is second</div>
<div class="tab" id="tab-third">This is third</div>

JavaScript:

jQuery(function($) {

    $("<p>").html("Loaded at " + new Date()).appendTo(
        document.body
    );
    showTab(location.hash || "first");

    $("#nav a").click(function() {
        var hash = this.getAttribute("href");
        if (hash.substring(0, 1) === "#") {
            hash = hash.substring(1);
        }
        location.hash = hash;
        showTab(hash);
        return false;
    });

    function showTab(hash) {
        $("div.tab").hide();
        $("#tab-" + hash).show();
    }

});

В качестве альтернативы (или совместно) вы можете установить cookie-файл, когда они меняют вкладки, и проверять наличие cookie-файла при загрузке страницы, чтобы выбрать последнюю выбранную вкладку.

 T.J. Crowder29 февр. 2012 г., 14:28
@JamesG: Не беспокойся, рад, что помог.
 JamesG29 февр. 2012 г., 12:59
Просто интересно ... Я пытаюсь установить cookie, когда пользователь переключает вкладки ... это нужно сделать через JavaScript или только в PHP?
 T.J. Crowder29 февр. 2012 г., 13:18
@JamesG: я не видел никаких звонков на сервер в ваших вкладках, так что вы бы делали это с помощью JavaScript. Браузеры выставляют куки на JavaScriptочень странный способ, но есть плагин cookie для jQuery (как этот), который будет обрабатывать любую сложность для вас, или вы можете получить некоторый код изQuirksMode (в нем также есть разумное описание того, как работает интерфейс JavaScript к ним).
 JamesG29 февр. 2012 г., 12:38
Хорошо, это Брилл, спасибо. Гораздо лучшая система вкладок, чем у меня была изначально.
 JamesG29 февр. 2012 г., 14:20
Хорошо спасибо! Даже не знал о печенье с JS ... такой нуб извините. Ценить это!

Ваш ответ на вопрос