translationList
. Объявите переменную и уже потом присваивайте ей объект модуляlet moduleObj;
async function checkPageAdress(){
switch(currentPath){
case '/index.html':
moduleObj = await import('/dist/js/languages/index_translate.js');
break
case '/services.html':
moduleObj = await import('/dist/js/languages/services_translate.js');
break
default:
moduleObj = await import('/dist/js/languages/index_translate.js');
}
}
checkPageAdress()
moduleObj.translationList
autoContents.forEach(content => {
let attr = btn.getAttribute("data-id");
if (content.getAttribute("data-id") == attr) {
btn.classList.toggle('_active')
content.classList.toggle("_active");
} else {
content.classList.remove("_active");
}
});
new Promise
обрабатывается вместе с синхронным кодом ( 2 -> 6 ), всё что в then попадает в очередь микрозадач и выполняется после синхронного кода ( 3 -> 8 ), потом идут таймауты ( 1 -> 4 -> 7 ).class Lorem {
constructor(ipsum, isnit) {
}
}
const cancelable = fn => { // Создаётся функция cancelable, которая принимает функцию и сохраняет в переменную fn
const wrapper = (...args) =>{ // Создаётся функция-обёртка, которая принимает любой набор аргументов
if(fn) return fn(...args) // Если в cancelable была передана функция, то вызывает её с необходимыми аргументами
}
wrapper.cancel = () => fn = null // Добавляет свойство во wrapper для очистки переменной fn
return wrapper // Возвращает обёртку
}
const fn = par =>{ // Функция, которая оборачивается в декоратор со своим аргументом
console.log('Function called, par:',par)
}
const f = cancelable(fn) // Создаёт обёртку вокруг fn
f('first') // Function called, par: first
f.cancel() // fn является переменной внутри cancelable, здесь мы её обнуляем
f('second') // Ничего не выводит, потому что условие у wrapper отрабатывает, только если функция есть
let inputs = document.querySelectorAll('.input__file');
inputs.forEach(function (input) {
input.addEventListener('change', function() {
let label = this.nextElementSibling;
let image = label.children[0]
image.style.display = "none:
}
);
const header = document.querySelector('.header'); // Здесь класс вашей шапки
window.addEventListener('scroll', function() {
if (window.scrollY >= 54) {
header.classList.addClass('header--scrolling'); // Добавить класс, который будет менять стили
} else {
header.classList.removeClass('header--scrolling'); // Убрать
}
});
<template>
<button
type="button"
@click="formatDoc('bold')"
:style="styles.fontBold ? 'font-weight': 'bold' : 'font-weight: 'regular'"
:class="{ 'button--active': styles.fontBold }"
>
<v-icon>mdi-format-bold</v-icon>
</button>
</template>
<script>
export default {
data() {
return {
styles: {
fontBold: false,
}
}
},
methods: {
formatDoc(cmd, value = null) {
if (value) {
document.execCommand(cmd, false, value);
} else {
document.execCommand(cmd);
switch(cmd) {
case 'bold':
this.styles.fontBold = !this.styles.fontBold;
break;
}
}
}
}
}
</script>
lab.textContent = lab.textContent.replace(/ pineapple/g, '')
text_data.textContent = text_data.dataset.info
input.value = text_data.dataset.info
input.defaultValue = text_data.dataset.info
function f(arr, n) { // Массив arr, по индексу n
let result = [];
let new_arr = [];
for (let i = 0; i < arr.length; i++) {
if (new_arr.includes(arr[i][n])) result.push(arr[i][n]);
new_arr.push(arr[i][n]);
}
return result;
}
function sorts(p_arr, p_symb){
let res_arr = [];
//...
}
function win(){
document.body.append(el_table);
document.addEventListener('click', closes);
}
function closes(e){
console.log(e.target);
if (e.target != parent && el_table) {
el_table.remove();
}
}
let input = document.getElementById('input'); // Находит нужный элемент в DOM дереве
if (!input.value) {
// Какие-то действия
}