У меня немного другой подход, который не обязательно опирается на встроенную функцию 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, будут автоматически преобразованы в закладки при загрузке, сейчас или в будущем!