2013-06-12 4 views
-1

Итак, у меня есть код jQuery, который я использую, чтобы заставить вкладки работать.Добавление «активного» класса к самому переключателю jQuery

Теперь это моя проблема, я хочу, чтобы он переключился на класс, добавленный к нему, когда кто-то нажимает на переключатель. Я не хочу активный класс в контенте, но вместо этого переключается.

Вот мой JQuery код

function toggleMeMirror(a){ 

// hide all 

jQuery('.episodemirrors').hide(); 

// show one 

var e=document.getElementById(a); 

if(!e) return true; 

    if(e.style.display=="none"){ 

     e.style.display="inline" 

    } else { 

     e.style.display="none" 

    } 

return true; 

} 

Вот мой HTML код для переключения .. не содержание.

<div id="post-<?php the_ID(); ?>" onclick="return toggleMeMirror('post-<?php the_ID(); ?>')" >Toggle</div> 

Это где я хочу активный класс так, возможно, сделать класс active когда кто-то нажимает на него, так что я могу укладывать его по-разному.

Это мой HTML для моего содержания

<div id="post-<?php the_ID(); ?>" class="episodemirrors"> Content </div>

+0

Почему ваш 'div' имеет возвращаемого значения? –

+0

Элемент имеет класс, но вы пытаетесь его получить с помощью getElementById? – adeneo

+0

@adeneo - Мне кажется, что 'div' имеет' id' в аргументе, который является другим элементом. Таким образом, Он скрывает все элементы, которые будут иметь этот идентификатор, и показывает тот, который находится в аргументе. Но все же это выглядит как «Я надеялся, что вы сможете сделать это для меня. Вот что я хочу: ...» тип вопроса. –

ответ

0

Вы можете использовать JQuery и у вас есть уникальный идентификатор Toggler. Таким образом, вы можете сделать это внутри существующей функции:

$('.post-[id]').addClass('active'); 

Некоторые предложения, хотя:

  1. Поскольку ваши классы Toggler имеют уникальные идентификаторы, вы можете иметь их использовать идентификаторы вместо классов.

  2. Вместо того, чтобы делать e.style.display, вы можете использовать toggleClass jQuery, который отслеживает добавление и удаление класса для вас. Вы начинаете с скрытия всех классов всякий раз, когда вы запускаете функцию, поэтому вы можете просто включить отображение для этого div.

  3. Поскольку вы используете jQuery, вы можете использовать его для запуска щелчка.

Простой пример, основанный на коде:

<div class="trigger" id="[id]">Toggle</div> 

$('.trigger').click(function(){ 
    $('.episodemirrors').hide(); 
    var id = $(this).attr('id'); 
    $('#post-'+id).css('display', 'inline'); 
}); 
+0

Обратите внимание, что когда я написал комментарий, вы использовали уникальный класс вместо id на триггере. С тех пор, я вижу, вы изменили свой пример. Это хорошее усилие, но теперь у вас вместо этого есть одинаковый идентификатор как для триггера, так и для контента div, который не будет работать. –

+0

Я использую 'id' для divs сейчас. Мне просто нужен «активный» класс, добавленный сейчас. Не могли бы вы показать мне, где я могу добавить этот код в мой текущий jQuery? Я полный noob в jQuery :( – Maaz

+0

Как мне изменить мой jQuery? Прошу прощения, я мало знаю о jQuery. Вы можете увидеть мой текущий код jQuery наверху. Поскольку вы рекомендовали иметь идентификаторы вместо классов.Тогда мне просто нужен класс = «активный», когда кто-то нажимает на триггер. – Maaz

0

Я думаю, что самый простой способ это сделать это следующим образом:

HTML:

<div class="spoiler"> 
    <div class="toggle">Toggle</div> 
    <div class="content">Content</div> 
</div> 

CSS:

.spoiler .content { 
    display: none; 
} 

ЯШ:

$(".spoiler .toggle").click(function(){ 
    $(".spoiler .toggle.active").removeClass("active").next().hide(); 
    $(this).toggleClass("active"); 
    $(this).next().toggle(); 
}) 
+0

Существует несколько вкладок и несколько содержимого. Когда одна вкладка нажата, остальные должны быть скрыты. – Maaz

+0

Добавили код, так что теперь у вас будет все активные активные переключатели и активизируются. –

+0

Содержимое находится над переключателем. Вот ссылка, как это работает на данный момент: http://phanime.com/43902/dansai-bunri- no-crime-edge-online-episode-11/ – Maaz

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