Переопределение вкладки пользовательского интерфейса jQuery по умолчанию из ссылки на другой странице

Я использую вкладки пользовательского интерфейса jQuery (v1.7x) на домашней странице сайта, над которым я сейчас работаю, и они настроены следующим образом:

jQuery(document).ready(function($) {
$("#mastheadhome").tabs({
selected:4,
fx: {opacity: 'toggle'} 
});
});

Все это прекрасно работает, когда страница загружается, и вкладка, которую я хочу отображать по умолчанию, отображается так, как должна быть, однако я хотел бы сделать ссылку на некоторые другие вкладки с отдельных страниц на сайте, и нет необходимости скажем, если я использую хеш-ссылку (например, «/#panel1»), атрибут «selected» в приведенном выше коде перехватывает ее и переопределяет все!

Мне просто интересно, есть ли простой способ отобразить вкладку по умолчанию (индекс 4) на домашней странице при загрузке, но выбирать разные вкладки по ссылкам с других страниц?

Жду чьих-либо мыслей по этому поводу!

Алекс


person Community    schedule 14.09.2009    source источник


Ответы (3)


Алекс,

Я изменил то, что вы написали выше, чтобы оно работало без явного указания ожидаемых значений (более гибкое).

var show_tab = location.hash;
var divs = [];
var index;
$('.tabs > div').each(function() { divs.push('#'+this.id); });
for (i=0; i < divs.length; i++) {
 if (show_tab == divs[i]) {
  index = i;
  break; // found a match, break
 } else {
  index = 0; // default tab
 }
}
$('.tabs').tabs({ selected: index });

На моих страницах работает нормально. :)

person neezer    schedule 12.10.2009

Спасибо за предложение о строках запросов. Это побудило меня перейти к следующему решению:

jQuery(document).ready(function($) { 

var tabshown = location.hash; 
var index; 
switch(tabshown) { 
case "#panel1": 
index = 0
break; 
case "#panel2": 
index = 1
break; 
default: 
index = 4 } 

$("#mastheadhome").tabs({ selected:index, fx: {opacity: 'toggle'}    

});

}); 

Это не очень элегантно, но это работает!

Если кто-то может придумать лучший способ, я хотел бы услышать об этом!

person Community    schedule 14.09.2009

Вы можете добавить параметр строки запроса на страницу, на которой есть элементы управления вкладками, а затем ввести индекс на серверную часть страницы :)

person cwap    schedule 14.09.2009