2015-05-31 4 views
-1

У меня есть некоторые информационные контейнеры, которые показывают некоторые сведения в начале, при нажатии на них они должны скрываться, и появляется информационная кнопка, чтобы они снова отображались при нажатии. На всей странице есть похожие информационные поля и кнопки. И я только хочу показать и скрыть тех, кто нажал, а не глобально всех.Сделать отдельные кнопки переключателей работать вместе

Есть ли у кого-нибудь идея, как сделать эту функцию. Вот мой код.

<div class="it-con"> 
    <div class="mess-text"> 
     <span class="x-btn">&#10005;<br></span> 
     <h4>Headline</h4> 
     <br> 
     <p>Some Info</p> 
    </div> 
    <div class="toggle"> 
     <div class="inf-btn">Info</div> 
    </div> 
</div> 

Вот jquery, с которым я пришел.

$(".it-con .x-btn").click(function(e){ 
    $(this).closest('.mess-text').fadeOut(100);  
}) 

, но не знаю, как сделать inf-btn для отображения. И как снова появляется беспорядочный текст.

Справка действительно оценена.

:)

ответ

0

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

<div class="it-con"> 
    <div class="mess-text"> 
     <span class="x-btn">&#10005;<br></span> 
    </div> 
    <div class="toggle"> 
     <h4>Headline</h4> 
     <br> 
     <p>Some Info</p> 
    </div> 
</div> 

JS:

$(".it-con .x-btn").click(function(e){ 
    info = $(this).parent().next('.toggle') 
    info.toggle(); 
    if (info.is(":visible")) { 
     $(this).html('HIDE'); 
    } else { 
     $(this).html('SHOW');  
    } 
}) 
+0

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

+0

Но если скрытая кнопка невидима, как вы скрываете текст? – jpriebe

0

Вы хотите что-то вроде THIS?

Код:

$(".inf-btn").click(function (e) { 
 
    $(this).siblings('.mess-text').slideToggle(); 
 
    $(this).text(function (i, text) { 
 
     return text === "Hide info" ? "Show info" : "Hide info"; 
 
    }); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="it-con"> 
 
    <button class="inf-btn">Hide info</button> 
 
    <div class="mess-text"> 
 
     <h4>Headline</h4> 
 

 
     <br> 
 
     <p>Some Info</p> 
 
    </div> 
 
</div> 
 
<div class="it-con"> 
 
    <button class="inf-btn">Hide info</button> 
 
    <div class="mess-text"> 
 
     <h4>Headline</h4> 
 

 
     <br> 
 
     <p>Some Other Info</p> 
 
    </div> 
 
</div>

+0

Это была бы хорошая идея. Но на самом деле у меня иногда есть две кнопки, которые всегда должны быть видны, пока текст невидим. Так что они должны быть вне текстового контейнера, я думаю. И я не знаю, как сделать внешнюю кнопку, чтобы текстовый контейнер снова появился. –

+0

Кнопки никогда не исчезают с этим кодом, они находятся за пределами текстовой оболочки. Кнопки вызывают функцию slideToggle() над текстом, чтобы он отображался и исчезал, пока кнопка всегда видна. –

+0

Оба опубликованных решения выполняют именно то, что вы описываете. – jpriebe

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