2011-01-10 7 views
0

У меня возникла проблема, когда я пытаюсь вспомнить последнюю нажатую вкладку в jQuery. Я хочу использовать ui.index в javascript-коде, но я нашел, что он всегда становится неопределенным.jQuery ui.index всегда не определено

Вот мой код:

$('#tabs').bind('tabsselect', function(event, ui) { 
    var newIndex = ui.index; 
    $("#<%=hiddenSelectedTab.ClientID%>").val(newIndex); 
}); 

Кто-нибудь знает, как решить эту проблему? Благодаря

Edit:

Вот мой HTML-код:

<div id="tabs"> 
    <ul> 
     <li><a href="#link1"> 
      link1</a></li> 
     <li><a href="#link2"> 
      link2</a></li> 
     <li><a href="#link3"> 
      link3</a></li> 
    </ul> 
    <div id="link1"></div> 
    <div id="link2"></div> 
    <div id="link3"></div> 
</div> 

Я использую скрытое помнить вкладку я Choosed.

<input type="hidden" id="hiddenSelectedTab" runat="server" value="0" /> 

Мой Javascript код изменен:

$(document).ready(function() { 
      $("#tabs").tabs().tabs('select', parseInt($("#<%=hiddenSelectedTab.ClientID%>").val())); 
      var $tabs = $("#tabs").tabs(); 
      var selected = $tabs.tabs("option", "selected"); 
      $("#<%=hiddenSelectedTab.ClientID%>").val(selected); 
}); 

Эта линия всегда возвращает 0.

var selected = $tabs.tabs("option", "selected"); 

Я очень смущен. . :(

+0

можете ли вы опубликовать некоторые из своих HTML? – hunter

+0

Можете ли вы взглянуть на него? –

ответ

1

Если вы хотите запомнить последнюю выбранную вкладку после закрытия браузера, вы должны использовать cookie. если вы хотите запомнить выбранную вкладку браузера без закрытия этого полного кода работает для меня: (если вы хотите использовать скрытый вход)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
<script src="js/jquery.ui.core.js"></script> 
<script src="js/jquery.ui.widget.js"></script> 
<script src="js/jquery.ui.tabs.js"></script> 
<link rel="stylesheet" href="css/jquery-ui-1.8.7.custom.css"/> 
</head> 
<div id="tabs"> 
    <ul> 
     <li><a href="#link1"> 
      link1</a></li> 
     <li><a href="#link2"> 
      link2</a></li> 
     <li><a href="#link3"> 
      link3</a></li> 
    </ul> 
    <div id="link1"></div> 
    <div id="link2"></div> 
    <div id="link3"></div> 
</div> 
<input type="hidden" id="hiddenSelectedTab" value="2" /> 
<script language="javascript"> 
$(document).ready(function() { 
alert($("#hiddenSelectedTab").val()); 
$("#tabs").tabs().tabs({ 
selected:parseInt($("#hiddenSelectedTab").val()), 
select: function(event, ui) { 
alert(ui.index); 
$("#hiddenSelectedTab").val(ui.index); 
alert($("#hiddenSelectedTab").val()); 
} 
}); 
}); 
</script> 

после браузера «тревоги 2» после того, как выберите 1th вкладки «оповещение 0» два раза

+0

Я проверил ваш код, он работал отлично. Что-то не так с моим кодом, и я должен понять это. –

0

использование куки проверить this link

функции, как:

$(function() { 
    $("#tabs").tabs({ 
     cookie: { 
      // store cookie for a day, without, it would be a session cookie 
      expires: 1 
     } 
    }); 
}) 
+0

Вы хотите сказать, что нет решения с событием? –

+0

Я не уверен, но печенье делаю это. – imez

+0

Но для меня это будет сложнее и тяжелее. Я пытаюсь решить это с помощью второго метода, который сказал охотник. Thanx –

0
$("#tabs").tabs().tabs('select',$("#hiddenSelectedTab").val()); 
var $tabs = $("#tabs").tabs(); 
var selected = $tabs.tabs("option", "selected"); 
$("#<%=hiddenSelectedTab.ClientID%>").val("selected"); 

У меня проблема с

parseInt($("#<%=hiddenSelectedTab.ClientID%>").val()) 

и заменить

$("#hiddenSelectedTab").val() 

и он работает!

+0

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

+0

Для строки 'var selected = $ tabs.tabs (« option »,« selected »);', значение выбранного всегда равно 2. Знаете ли вы, почему? –

+0

Он всегда получает значение последней вкладки. –

Смежные вопросы