Genre not found
Artist not found
Album not found
Song not found

javascript void;
J. Strong Lyrics


We have lyrics for these tracks by J. Strong:

Don't Wanna Be I don't wanna be right I don't wanna be right I don't…
Got My Attention I've got you under my skin. I've got you deep in…
I Need U I need you so To keep me happy And if I can't…
My Brothers Wooden planes Propellers spinnin' in the west Texas wind W…
My Christmas Wish We wish you a Merry Christmas, We wish you a Merry…
Push It Up Hey hey hey aayyy hey hey hey aayyy Hey hey hey…
Will U Come Tonight you're mine, completely You give your soul so sweet…

The lyrics can frequently be found in the comments below, by filtering for lyric videos or browsing the comments in the different videos below.
Most interesting comments from YouTube:

abc abc

Иван, добрый день!
А почему мы следующие валидации поместили в changeModalState.js, а не в forms.js?
checkNumInputs("#width");
checkNumInputs("#height");

По-идее, ведь, это не относится никак к модулю changeModalState.


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



Анна Швецова

Вот да))) я тоже потупила. И не уверена, что мое решение красивое. Правда работает. Лучше я не придумала. Оправдываю себя тем, что я не просто не джун, а недобейби пока что в js)))))) Если кто укажет на корявости и подскажет, как красиво, буду благодарна.


в main js в вызов функции modals, добавила modalState -> modals(modalState);


И в файлу modals.js в части, где обрабатывается событие по клику на триггер, поменяла код:


const modals = (state) => {
function bindModals(triggerSelector, modalSelector, closeSelector, closeOnClick = true) {
const trigger = document.querySelectorAll(triggerSelector),
modal = document.querySelector(modalSelector),
close = document.querySelector(closeSelector),
allModals = document.querySelectorAll('[data-modal]');



trigger.forEach((item) => {
item.addEventListener('click', (e) => {
if (e.target) {
e.preventDefault();
}

function hide() {
allModals.forEach((item) => {
item.style.display = 'none';
});

modal.style.display = 'block';
document.body.style.overflow = 'hidden';
}

switch (modalSelector) {
case '.popup_calc_profile':
if (!state.width || !state.height) {
alert('укажите размер окна');
} else {
hide();
}
break;
case '.popup_calc_end':
if (!state.profile) {
alert('выберите профиль');
} else {
hide();
}
break;
default:
hide();
break;
}
});
});







close.addEventListener('click', () => {
allModals.forEach((item) => {
item.style.display = 'none';
});

modal.style.display = 'none';
document.body.style.overflow = '';
});

modal.addEventListener('click', (e) => {
if (e.target === modal && closeOnClick) {
allModals.forEach((item) => {
item.style.display = 'none';
});

modal.style.display = 'none';
document.body.style.overflow = '';
}
});
}

function showModalAfter(selector, time) {
setTimeout(() => {
document.querySelector(selector).style.display = 'block';
document.body.style.overflow = 'hidden';
}, time);
}

bindModals('.popup_engineer_btn', '.popup_engineer', '.popup_engineer .popup_close');
bindModals('.phone_link', '.popup', '.popup .popup_close');
bindModals('.popup_calc_btn', '.popup_calc', '.popup_calc_close', false);
bindModals('.popup_calc_button', '.popup_calc_profile', '.popup_calc_profile_close', false);
bindModals('.popup_calc_profile_button', '.popup_calc_end', '.popup_calc_end_close', false);
// showModalAfter('.popup', 6e4);



};

export default modals;



Вячеслав Иванов

Если не клацать в самом начале по выбору формы окна (например клиента устраивает форма по умолчанию 1 таб) и в select тоже оставить по умолчанию (деревянное окно), то эти данные не передаются на сервер - array(5) {
["user_name"]=>
string(10) "слава"
["user_phone"]=>
string(8) "12345678"
["width"]=>
string(3) "100"
["height"]=>
string(3) "200"
["profile"]=>
string(12) "теплое"
}



All comments from YouTube:

Titan Qq

Мощно, сразу видно уровень исполнителя..

Aleksandr Staetskiy

Очень полезный видос, спасибо! Тоже реализовывал подобный кейс

Abay

Спасбо огромное за такой отличный контент!

Roman craft

Таких классных уроков нет ни у кого, спасибо огромное!

Ivan Petrychenko

Спасибо)

Виталий Абраменко

Контент очень хороший. Спасибо Иван. Только что то просмотров маловато.

Taras Klimarchuk

мало кто доходит до такого уровня). Гораздо выгодней клипать ролики по основам

Titan Qq

@Ivan Petrychenko будет много просмотров, не первый раз нахожу каналы с крутым контентом и не разу не видел ,что бы они не выстреливали. В один один момент попрут просмотры и все.

Ivan Petrychenko

Лайкайте, делитесь :)

Dmitriy Stoyanov

Круто! Это не тяп-ляп, а реальный уровень, такие ребята мотивируют, спасибо!

More Comments

More Videos