$(document).on('click', '.dropdown-toggle', function () {
$(this).closest('.dropdown')
.find('.dropdown-toggle-arrow').toggleClass('rotate').end()
.find('.dropdown-content').slideToggle();
});
!$(target).is('nav') && !$(target).parents().is('nav')
<nav>
<div class="title" data-name="first">
<div class="title" data-name="second">
...
<div class="list" data-name="first">
<div class="list" data-name="second">
...
$('.title').click(function() {
$(`.list[data-name="${this.dataset.name}"]`).slideToggle('fast');
});
$('.title').click(function() {
$('.list').eq($(this).index()).slideToggle('fast');
});
.title
/.list
, тогда можно так:$('.title').click(function() {
$(this).closest('здесь селектор общего предка').find('.list').slideToggle('fast');
});
display: flex
flex-wrap: wrap
для родителя formflex-basis
flex-grow
- для label и инпут(в зависимости от того будете ли вы оборачивать input.Добавляешь в таблицы поля, что-то типа
было text
стало text, text_en, text_sp, text_pl и т.д.
$lang = $_GET['lang']; // Допустим lang хранится в гет параметре (можно и в куки хранить выбранный язык)
$lang = in_array( $lang, [ 'ru', 'en', 'sp', 'pl' ] ) ? "_$lang" : ''; // Получается так "_ru" (вместо ru язык выбранный) или пустая строка.
При генерации страницы где выводишь $row['text'] заменяешь на $row["text$lang"].
Что касается статичных данных, то проще хранить шаблоны для каждого языка и подключать при генерации страницы.
SELECT * FROM projects WHERE id > " . $post_id . " ORDER BY id ASC LIMIT 1";
SELECT * FROM projects WHERE id < " . $post_id . " ORDER BY id DESC LIMIT 1";
$(".stickers_block img").each(function() { // здесь ты перебираешь все картинки
imgsrc = this.src; // у каждой берешь src и записываешь в переменную
});
// и после перебора там записано последнее значение
$('.stickers_block img').on('click', function () {
$('.message-screen').append('<div class="user_two_message col-xs-12 col-sm-12"><div class="sender-text-stickers"><img src="' + this.src + '"></div></div>');
$('.close_modal_stickers').click();
});