Category Archives: кодер

Переключение между двумя значениями переменной

В программировании периодически приходится менять значение переменной между двумя константами. Пример такого триггера — реализация сворачивания/разворачивания части окна или текста (спойлеры)

Универсальное решение состоит в использовании условия а-ля

if x = a then

x=b

else

x=a

end if

Классическое красивое решение для логических переменных в одну строчку

x = not x  или x = !x

Еще в школе мне показали решение для числовых триггеров

x = (a+b)-x

Если стартовое значение х, к примеру, = a, то каждый вызов такой команды будет поочередно присваивать переменной то а то b.

Переключение текстовой переменной между двумя значениями я всегда реализовывал условием. Но вот в javascript есть хорошая функция позволяющая реализовать и такой переключатель в одну строку:

пусть нам надо переключаться между «текст1» и «текст2»

x = "текст1текст2".replace(x,"");

Вуаля =). Это решение нашлось в голове само и как говориться «сделало мой день». Практическая задача заключалась в изменении текста блока при клике на нем, чтобы спойлер не просто скрывал/отображал текст но и менял свое название при этом. Постоянно пользую jquery и вот кусок реализующий простой спойлер:

<div class="spoiler">
</div
onclick='$(this).text( "развернутьсвернуть".replace($(this).text(),"")); $(this).next("div").toggle();'
>развернуть</div>
<div>Скрытый текст тут</div>
</div>

Понятно, что если спойлеры на сайте используются массово, то лучше навесить обработчик создающий структуру спойлера после загрузки.

Если одна из текстовых констант содержит вторую то реплэйс накосачит, что можно решить примерно так

используем символ разделитель которого заведомо нет в тексте например # или любой другой

x = "#текст#не текст#".replace("#"+x+"#","").replace("#","");