Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.04.2018, 23:05
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Если элемента нет, а в скрипте есть для него функция
Здравствуйте!
Подскажите как правильно пишут скрипт в таком случае.
Есть кнопка .btnLogin на которую стоит обработчик события. Кнопка вызывает форму авторизации.
Если пользователь залогинен, то кнопка не выводится в html, а скрипт выдаёт ошибку. Консоль указывает на функцию.

Сама функция:
var btnLogin = document.querySelector('.btnLogin');

btnLogin.addEventListener('click', function() {
	document.querySelector('.overlayPopup').style.display = 'block';
	document.querySelector('.popupLog').style.display = 'block';
})


Как вариант можно скрипт разделить на два и выводить по отдельности - один для авторизированных, второй для посетителей. Но наверно это не лучшее решение.
Ответить с цитированием
  #2 (permalink)  
Старый 07.04.2018, 23:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

var btnLogin = document.querySelector('.btnLogin');
if(btnLogin){
btnLogin.addEventListener('click', function() {
	document.querySelector('.overlayPopup').style.display = 'block';
	document.querySelector('.popupLog').style.display = 'block';
});
}

Последний раз редактировалось j0hnik, 07.04.2018 в 23:42.
Ответить с цитированием
  #3 (permalink)  
Старый 07.04.2018, 23:29
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

j0hnik, length тут явно лишний.
Ответить с цитированием
  #4 (permalink)  
Старый 07.04.2018, 23:35
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

ruslan_mart, спасибо за подсказку. С length давало ошибку. Убрал - заработало.
Ответить с цитированием
  #5 (permalink)  
Старый 07.04.2018, 23:42
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

ruslan_mart,
Да, спасибо, автоматом
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Высота скрытого содержания в теге, если для него установлено overflow:hiden; paratrooper1981 Общие вопросы Javascript 19 23.12.2009 18:26
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09