Способов масса. Вот один из:
HTML:<button class="js-button" data-toggle-text="Close">Open</button>
<div class="js-container hidden">
Some text here.
</div>
CSS:.hidden {
display: none;
}
Если вы не используете jQuery в проекте, то посмотрите пример на чистом JavaScript:
JavaScript: (Демо:
codepen.io/anon/pen/EjzYpy )
;(function($D){
var $button = $D.querySelector('.js-button'),
$container = $D.querySelector('.js-container');
$button.addEventListener('click', function(e){
var data = e.target.dataset,
toggleText = $button.innerHTML,
isVisible = $container.style.display == 'block';
$button.innerHTML = data.toggleText;
data.toggleText = toggleText;
$container.style.display = isVisible ? 'none' : 'block';
});
})(document);
Если используете jQuery, посмотрите следующий пример:
jQuery: (Демо:
codepen.io/anon/pen/MwdgEN )
$(function(){
var $button = $('.js-button'),
$container = $('.js-container');
$button.on('click', function(){
var toggleText = $(this).data('toggle-text');
$(this).data('toggle-text', $(this).text())
.text(toggleText);
$container.toggleClass('hidden');
});
});