Показать сообщение отдельно
  #5 (permalink)  
Старый 09.12.2018, 16:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 10,535

Сообщение от knhoman
вот так должно быть
Так быть не должно. В обработчике уже доступен элемент как this, либо в jQuery можно запомнить, затем использовать:

var btn = $('#show-more').click(function() {
     var text = btn.text();
     if (text == "Показать еще" ) {
        btn.text("Свернуть");
     .....


Постоянно получать jquey объект, это плохо. А тернарный оператор позволяет более лаконично это записать. Можно текстом и не заниматься, например:

<style>
#show-more:after {
    content: 'Показать еще';
}

#show-more.open:after {
    content: 'Свернуть';
}

.panel {
    display: none;
}
</style>

<span id="show-more"></span>
<div class="panel">Что-то</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$('#show-more').click(function() {
    $(this).toggleClass('open').next().slideToggle();
})
</script>

Последний раз редактировалось laimas, 09.12.2018 в 16:06.
Ответить с цитированием