2015-07-25 2 views
0

Я хотел бы изменить часть своего текста всякий раз, когда активируется функция slideToggle.JQuery slideToggle - изменение текста

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

Я пробовал его со следующим кодом, но он просто остается вниз, когда он снова активируется.

JQuery:

$(".header").click(function() { 

    $header = $(this); 
    //getting the next element 
    $content = $header.next(); 
    //open up the content needed - toggle the slide- if visible, slide up, if not slidedown. 
    $content.slideToggle(500, function() { 
     //execute this after slideToggle is done 
     $('.fa-angle-down').remove(); 
     $header.prepend('<i class="fa fa-angle-up"></i>'); 
    }); 

}); 

HTML:

<div class='container'> 
<h2>Title</h2> 
<br> 
<div class='header'><i class="fa fa-angle-down fa-1x"></i> Title text</div> 
<div class="content"> 
Content text 
</div> 
</div> 

CSS:

.container .content { 
    display: none; 
    padding : 5px; 
} 

.header { 
    cursor: pointer; 
} 
+0

Пожалуйста, добавьте ваш HTML-код также –

+0

Добавлено в сообщение @RinoRaj –

+0

Пожалуйста, не могли бы вы добавить свой CSS? – Ash

ответ

1

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

$header.find('i').toggleClass('fa-angle-down fa-angle-up'); 
+0

Работали как очарование! Большое спасибо. –

+0

Рад помочь – BhavO

0

Я думаю, JQuery toggleClass() может удовлетворить ваши требования лучше:

$(".header").click(function() { 
    $header = $(this); 
    //getting the next element 
    $content = $header.next(); 
    //open up the content needed - toggle the slide- if visible, slide up, if not slidedown. 
    $content.slideToggle(500, function() { 
     $('.fa').toggleClass("angle-down"); 
    }); 

}); 

Попробуйте example.