Вы можете сделать это следующим образом:
$('.js-show-content').bind('click', function(){
$('.content').slideToggle(200);
$(this).find('i').toggleClass('fa-arrow-circle-down fa-arrow-circle-up');
$(this).find('span').html(function(i, text){
return text === 'Hide content' ? 'View content' : 'Hide content';
});
return false;
});
Кроме того, вам придется слегка изменить HTML, обернув текст кнопки в span
так, что при изменении текста вы не удалите i
элемент:
<a class="js-show-content btn btn-default" href="#" role="button"><i class="fa fa-arrow-circle-down fa-md"></i> <span>View content</span></a>
Как уже говорилось, вы можете использовать JQuery-х slideToggle, чтобы показать/скрыть .content
DIV используя одну строку кода. Следующая часть использует toggleClass для переключения между up
и down
иконки стрелки на элементе i
. Наконец, мы заменяем текст упрощенным if/else statement, который проверяет текущий текст кнопки, если он соответствует, тогда текст изменяется, если он не соответствует, то он переключается на исходный текст.
Нет необходимости называть 'toggleClass' дважды. Вы можете передавать имена классов в списке, разделенном пробелами. '.toggleClass ('fa-arrow-circle-down fa-arrow-circle-up')'. –
Спасибо за отзыв, обновлено! – APAD1