Переопределение вкладки jQuery UI по умолчанию из ссылки на другой странице - PullRequest
2 голосов
/ 14 сентября 2009

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

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

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

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

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

Alex

Ответы [ 3 ]

2 голосов
/ 13 октября 2009

Alex

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

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

Хорошо работает на моих страницах. :)

1 голос
/ 14 сентября 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'}    

});

}); 

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

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

0 голосов
/ 14 сентября 2009

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

...