Есть файл *.js для проекта из двух страниц. Часть кода для главной страницы выполняется, часть для внутренней - нет. Работает, только при подключении этих частей к страницам в виде отдельных файлов. В чем дело?
var link = document.querySelector(".contacts-btn");
var popup = document.querySelector(".modal-write-us");
var close = document.querySelector(".modal-close");
var overlay = document.querySelector(".modal-overlay");
var form = popup.querySelector("form");
var name = popup.querySelector("[name=u-name]");
var mail = popup.querySelector("[name=u-email]");
var feedback = popup.querySelector("textarea");
var openMap = document.querySelector(".map");
var popupMap = document.querySelector(".modal-map");
var closeMap = popupMap.querySelector(".modal-close");
link.addEventListener("click", function(event) {
event.preventDefault();
popup.classList.add("modal-write-us-show");
name.focus();
});
link.addEventListener("click", function(event) {
event.preventDefault();
overlay.classList.add("modal-overlay-show");
});
close.addEventListener("click", function(event) {
event.preventDefault();
popup.classList.remove("modal-write-us-show");
});
close.addEventListener("click", function(event) {
event.preventDefault();
overlay.classList.remove("modal-overlay-show");
popup.classList.remove("modal-error");
});
form.addEventListener("submit", function() {
if (!name.value || !mail.value || !feedback.value) {
event.preventDefault();
popup.classList.remove("modal-error");
popup.offsetWidth = popup.offsetWidth;
popup.classList.add("modal-error");
} else {
localStorage.setItem("name", name.value)
};
});
// Map Modal window
openMap.addEventListener("click", function(event) {
event.preventDefault();
overlay.classList.add("modal-overlay-show");
});
openMap.addEventListener("click", function(event) {
event.preventDefault();
popupMap.classList.add("modal-map-show");
});
closeMap.addEventListener("click", function(event) {
event.preventDefault();
overlay.classList.remove("modal-overlay-show");
});
closeMap.addEventListener("click", function(event) {
event.preventDefault();
popupMap.classList.remove("modal-map-show");
});
// BOOK THE GOOD - Не работает на Главной
var buyIt = document.querySelector(".buy-it-btn");
var bookIt = document.querySelector(".book-it-btn");
var popupBuy = document.querySelector(".modal-order");
var closePopup = document.querySelector(".modal-close");
var closeToo = document.querySelector(".keep-on-btn");
buyIt.addEventListener("click", function(event) {
event.preventDefault();
popupBuy.classList.add("modal-order-show");
});
bookIt.addEventListener("click", function(event) {
event.preventDefault();
popupBuy.classList.add("modal-order-show");
});
closePopup.addEventListener("click", function(event) {
event.preventDefault();
popupBuy.classList.remove("modal-order-show");
});
closeToo.addEventListener("click", function(event) {
event.preventDefault();
popupBuy.classList.remove("modal-order-show");
});
http://www.w3schools.com/jsref/met_document_queryselector.asp
If no matches are found, null is returned.
(Если ничего не найдено, возвращает null.)
На второй странице
var form = popup.querySelector("form");
при значении popup
null
вызывает ошибку, прерывающую выполнение кода.
Проверяйте переменные на null
перед использованием:
var form = popup? popup.querySelector("form") : null;
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здравствуйте! Есть задача: по мере работы программы, выводить промежуточное состояние в таблицу. Для этого есть примерно такой код:.
Здравствуйте! Вот такая вот заминка получается, директива ng-repeat выводит в список.
Мой парсер падает на этой функции, ошибок не выводится, соответственно, он просто "думает" и не выводит ничего в консоль. .
Есть JS код который обрабатывает результаты теста(найден на просторах интернета), но он работает если в тесте 5 вопросов. Как сделать чтобы...