В чём ошибка исходного кода:
Во всех заголовках присутствует в конце зачем-то единица.
И поэтому при очередном клике, раньше других срабатывает одно и то же условие,
где ищется
'1'
и заголовок становится
2 - click again!1
Как лучше
Где-то сохранять, какой из заголовков виден сейчас.
Не текст заголовка — тексты могут частично совпадать и
indexOf()
начнёт ошибаться — а номер заголовка.
0xD34F подсказал как всегда красивый, правильный и лаконичный вариант.
Ещё можно держать переменную, указывающую на очередной заголовок:
const headers = ['Мойте руки', 'Сидите дома', 'Помогайте соседям', ];
let currentHeader = 0;
$('#header').on('click', function() {
$(this).text(headers[currentHeader]);
currentHeader += 1;
currentHeader %= headers.length;
});