2009-03-01 3 views
9

Я использую jquery-библиотеку в своем проекте. У меня есть ужасная проблема с вкладками jquery. Решения заключаются в том, что когда я был на третьей вкладке, я отправлял обратно свою форму, вкладки перезагружались и переходили на первую вкладку. Я ищу решение долгое время.jquery tabs postback problem

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#example > ul").tabs({ remote: true, cache: true }); 
    });  
</script> 

так как я решаю эту проблему? thx ваши ответы.

ответ

13

вкладки могут использовать файлы cookie для сохранения текущей вкладки. Посмотрите на вкладки documentation. Погружение в опции списка есть пример того, как использовать куки для хранения текущей вкладки:

$('.selector').tabs({ cookie: { expires: 30 } }); 

Это требует jquery cookies plugin быть включены хотя.

+0

Для меня это было лучшим и самым простым решением для реализации. У меня есть много вкладок на трех разных страницах, и вкладки сохраняют свое состояние через щелчки по вкладкам и обратные ссылки страницы. Потрясающие. –

+0

Ahh, это выглядит как идеальное решение проблемы, с которой я сталкиваюсь с частичными представлениями на вкладках ... К сожалению, веб-сайт jquery был снят из-за атак спамерских объявлений, на ссылки на документацию к вкладкам и плагин cookie jquery теперь недоступны ... – Dronz

24

Вы не указали, если вы используете ASP.NET, но если вы можете сохранить выбранную вкладку в настоящее время в качестве < осины: скрытый/> вместо печенья:

<script type="text/javascript" language="javascript"> 
    $(function() { 
     $("#example").tabs({ 
      show: function() { 
       var sel = $('#example').tabs('option', 'selected'); 
       $("#<%= hidLastTab.ClientID %>").val(sel); 
      }, 
      selected: <%= hidLastTab.Value %> 
     }); 
    }); 
</script> 
<asp:HiddenField runat="server" ID="hidLastTab" Value="0" /> 

Если а не ASP.NET, вы, вероятно, могли бы сделать что-то подобное.

+1

Это решение отлично работает для меня с помощью ASP.net Спасибо! –

+0

Это потрясающее решение! –

+0

Я пробовал много других решений безуспешно. Это прекрасно работало. Огромное спасибо. –

0

У меня была такая же проблема, закрепленное, добавив следующее в JQuery вкладки выберите обработчик события:

$("div.ui-tabs-panel").html(""); 

Он эффективно очищает все существующие панели для предотвращения формы укладки.

1

Я попытался использовать решение, отправленное joelsand. Однако параметры и события jQuery Tabs изменились. Текущая документация находится на http://api.jqueryui.com/tabs/.

Вместо события «show» я использовал «активированное» событие. Вместо опции «selected» я использовал «активную» опцию. Вместо скрытого поля я использовал переменную JavaScript (объявленную вне UpdatePanel)

+0

Название события ** активируется ** (не активировано). – fortboise