2013-03-28 8 views
1

У меня есть UL с классом «вкладки» один Ли класс «активный»JQuery динамическая вкладка цвета (все, кроме одной вкладки)

Вкладка «активный», очевидно, меняется, как пользователь нажимает на другая вкладка и используется так, чтобы ее цвет отличался от остальных.

Что я хочу сделать, это выбрать все ли в «вкладках» UL EXCEPT для активного и установить каждый из них другим цветом, добавив CSS-фон для каждого. Количество вкладок может различаться в зависимости от того, на какой странице они находятся на IE Одна страница может иметь четыре вкладки, но другая может иметь 6 или 7.

Если я хватал их всех, у меня не было бы проблемы, но я не уверен, как пойдите, чтобы попытаться исключить активную вкладку, так как я планировал использовать Nth, которая ВКЛЮЧАЕТ активную вкладку?

Любая помощь приветствуется.

+0

Вы используете вкладки пользовательского интерфейса jQuery? или просто jQuery с вашей собственной настройкой вкладки – hammus

+0

Я хочу использовать jquery с моей настройкой вкладки – John

ответ

2

Вы можете использовать .not():

$('ul.tabs li').not('.active').css({ ... }); 

Вы можете перебирать их с помощью .each():

$('ul.tabs li').not('.active').each(function() { ... }); 

Edit: Предполагая то, что у вас есть какой-нибудь способ определения, какая вкладка должна иметь которая фона, вот пример этого в использовании: JSFiddle.

+0

Вы не поняли мой вопрос. Это то, что у меня уже есть, и не то, что я спросил – John

+0

Я думаю, что вы комментировали, когда я редактировал свой ответ. –

+0

@John Теперь я добавил пример JSFiddle, чтобы показать это при использовании. –

0

Предполагая, что «активный» - это то, что применяется к контейнеру табуляции, когда его щелкнул, а все вкладки имеют что-то вроде class = «tab», что-то вроде этого должно быть достаточно.

$(".tab").each(funciton() { 
    if (!$(this).hasClass("active")) 
    { 
      $(this).addClass("myBackground"); 
    } 
}); 
+0

выше ответ (не мой) путь лучше :) – hammus

+0

Как у меня есть первый литий, который НЕ активен, установлен на синем, а второй литий, который НЕ активен красный, а третий Ли, который не активен зеленым, используя этот метод? Может быть, я не буду следовать за вами правильно или я не очень хорошо объясняю – John

0

Если вы хотите сделать это в CSS3 вы можете использовать это:

:not(p) 
{ 
background:#ff0000; 
} 

Это задает цвет фона для всех элементов, которые не являются элементом «р». Дополнительная информация: http://kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/

Смежные вопросы