Всем привет! Есть небольшая проблема:
Создаю сайт с переводом на несколько языков через js, есть две функции: определение страны и языка пользователя и автоматический клик по элементам. При загрузке страницы по какой-то причине происходит только один клик - по языку, но нет клика по выбранной стране.
Собственно, проверка языка и страны:
var userlang = window.navigator.language || navigator.userLanguage;
console.log(userlang)
if ( userlang == "ru" || userlang == "ru-RU") {
RU.classList.add ("defaultOpen");
}
if ( userlang == "cs" ) {
CZ.classList.add ("defaultOpen");
}
else {
EN.classList.add ("defaultOpen");
}
(document).ready(function() {
if (YMaps.location) // Проверяем, доступна ли геопозиция
{
console.log(YMaps.location.country);
if (YMaps.location.country == "Россия" || YMaps.location.country == "country") {
rus.classList.add("defaultOpen");
}
if (YMaps.location.country == "Чехия" || YMaps.location.country == "country") {
cze.classList.add("defaultOpen");
}
if (YMaps.location.country == "США" || YMaps.location.country == "country") {
usa.classList.add("defaultOpen");
}
else {
gbr.classList.add("defaultOpen");
}
}
else
alert("Пожалуйста, разрешите доступ к использованию Вашей геопозиции!");
});
функции перевода и выбора страны:
function changeLanguage(evt, language) {
var i;
var langBtns = document.getElementsByClassName("lang-btn");
for (i = 0; i < langBtns.length; i++) {
langBtns[i].className = langBtns[i].className.replace(" active", "");
}
evt.currentTarget.className += " active";
if (RU.classList.contains("active")) {
LangAbb.textContent = "RU";
lang.textContent = "Язык:";
country.innerHTML = "Страна:";
changeButtonsRU();
if (usa.classList.contains("active")) {
countryName.innerHTML = "США ($)";
}
if (gbr.classList.contains("active")) {
countryName.innerHTML = "Великобритания (€)";
}
if (cze.classList.contains("active")) {
countryName.innerHTML = "Чешская республика (Kč)";
}
if (rus.classList.contains("active")) {
countryName.innerHTML = "Россия (₽)";
}
}
//тоже самое, но на другом языке//
function changeCountry(evt, country) {
var i;
var countryBtns = document.getElementsByClassName("country-btn");
for (i = 0; i < countryBtns.length; i++) {
countryBtns[i].className = countryBtns[i].className.replace(" active", "");
}
evt.currentTarget.className += " active";
selectedCountry();
}
function selectedCountry() {
if (rus.classList.contains("active")) {
LangAbb.textContent = "RU";
lang.textContent = "Язык:";
country.innerHTML = "Страна:";
changeButtonsRU();
if (rus.classList.contains("active")) {
countryName.innerHTML = "Россия (₽)";
}
}
}
function changeButtonsRU() {
//text
chooseText.innerHTML = "Выберите страну";
europe.innerHTML = "Европа";
america.innerHTML = "Америка";
asia.innerHTML = "Азия";
//country buttons
rus.innerHTML = "Россия";
cze.innerHTML = "Чехия";
usa.innerHTML = "США";
//nav buttons
homeText.innerHTML = "Главная";
aboutText.innerHTML = "О нас";
galleryText.innerHTML = "Галерея";
womenText.innerHTML = "Для женщин";
menText.innerHTML = "Для мужчин";
childrenText.innerHTML = "Десткое";
blogText.innerHTML = "Новости";
}
и, собственно, функция клика при загрузке:
let defaultOpenButtons = document.querySelectorAll(".defaultOpen");
for (let index = defaultOpenButtons.length - 1; index >= 0; index--) {
const defaultOpenButton = defaultOpenButtons[index];
defaultOpenButton.click();
}
как здесь исправить, чтобы клик происходил по двум элементам? Весь остальной
код.