У меня немного другой подход, который не обязательно зависит от встроенной функции select(), но использует плагин livequery:
http://plugins.jquery.com/project/livequery/
которая является более мощной версией живой функции jQuery. Он может легко связывать будущие элементы, соответствующие запросу.
Предположим, у вас есть следующая структура вкладок:
<div class="Tabs">
<ul class="nav">
<li><a id="tab1">Link 1</a></li>
<li><a id="tab2">Link 2</a></li>
<li><a id="tab3">Link 3</a></li>
</ul>
..
..
</div>
в идеале вам нужна такая структура URL:
mydomain/mypage?tab=tab2
это становится довольно сложным, потому что метод select() поддерживает только целочисленные индексы, и что происходит, когда вы меняете вкладки?
Предположим, вы можете получить параметр url в переменной, как указано выше, чтобы сделать следующее:
Сначала вы находите целевой элемент и добавляете к нему класс:
jQuery('a#' + param).addClass('selectMe');
Затем вы привязываете функцию livequery к элементу:
jQuery('.ui-tabs-nav a.selectMe').livequery(function(){
jQuery(this).removeClass('selectMe').triggerHandler('click');
});
Это будет соответствовать ему только после того, как он будет преобразован с табуляцией и фактически «щелкнет» по нему.
Затем вы можете вызвать функцию вкладок без параметров:
jQuery(".Tabs").tabs();
и как только это будет завершено, вкладка будет автоматически нажата и выбрана!
Еще лучше, вы можете привязать создание вкладок к самому livequery:
jQuery(".Tabs").livequery(function(){
jQuery(this).tabs();
});
так что любые элементы, которые у вас есть с классом «.Tabs», будут автоматически преобразованы во вкладки при загрузке, сейчас или в будущем!
person
artsy.ca
schedule
14.05.2010