jQuery ui.index всегда неопределен - PullRequest
0 голосов
/ 10 января 2011

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

Вот мой код:

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

Кто-нибудь знает, как его решить?Спасибо

Редактировать:

Вот мой 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>

Я использую скрытое поле, чтобы запомнить выбранную мной вкладку.

<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");

Я действительно запутался.(

Ответы [ 3 ]

1 голос
/ 11 января 2011

Если вы хотите запомнить последнюю выбранную вкладку после закрытия браузера, вы должны использовать 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>

после того, как браузер "alert 2" после выбора 1-й вкладки "alert 0" два раза

0 голосов
/ 10 января 2011
$("#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 голосов
/ 10 января 2011

использовать куки. отметьте эту ссылку

функция похожа на:

$(function() {
    $( "#tabs" ).tabs({
        cookie: {
            // store cookie for a day, without, it would be a session cookie
            expires: 1
        }
    });
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...