• Как настроить vs code чтоб заполнялся sass синтаксис?

    black1277
    @black1277
    Вольный стрелок
    Установи плагин для подсветки https://marketplace.visualstudio.com/items?itemNam... и всё заработает
    Ответ написан
    Комментировать
  • Как справить вывод кода в VS Code?

    black1277
    @black1277
    Вольный стрелок
    Идёте в настройки, выбираете пункт Расширения, ищите название Rune Code configuration и в правой панельке ищете опцию Show Execution Message и снимаете с неё галочку. Всё!
    Ответ написан
    2 комментария
  • Что происходит в этом цикле?

    black1277
    @black1277
    Вольный стрелок
    // создаем стрелочную функцию, принимающую два параметра
    const countChars = (str, char) => {
    	// создаем переменные и присваиваим им значение 0
    	let i = 0;
    	let count = 0;
    	// запускаем цикл с предусловием
    	while (i < str.length) { // пока i меньше чем длина строки str
    		// исполняем тело цикла
    
    		// берем символ из строки str расположенный по индексу i и переводим в нижний регистр
    		// берем символ из аргумента функции и переводим в нижний регистр
    		if (str[i].toLowerCase() === char.toLowerCase()) { // сравниваем оба значения
    			// если совпало увеличиваем счетчик на 1
    			count = count + 1;
    		}
    		// перед новой итерацией цикла увеличиваем индекс на 1
    		i = i + 1;
    	}
    // возвращаем из функции накопленный результат подсчета или начальное значение если совпадений не было
    	return count;
    };
    
    let result = countChars('abba#abba#abba#', '#') // пример использования
    console.log(result); // 3
    Ответ написан
    Комментировать
  • Почему не работает проверка на val input`а?

    black1277
    @black1277
    Вольный стрелок
    Обычно у input проверяют value на значение. А element.val() это метод из jQuery. Вы уверены что у вашего input есть атрибут val? Выведите его в консоль сначала.
    Ответ написан
  • Какую книгу прочитать по JavaScript со средним уровнем знания js?

    black1277
    @black1277
    Вольный стрелок
    Прочитайте серию книг "Вы пока еще не знаете JS" Кайла Симпсона, есть издания 2022г.
    Ответ написан
    Комментировать
  • Npm init не работает, как исправить?

    black1277
    @black1277
    Вольный стрелок
    Идете в папку C:\Program Files\nodejs\ там находите 4 файла npm.cmd, npm, npx.cmd, npx - открываете их в редакторе и заменяете prefix -g на prefix --location=global Мне это помогло. Если что - вот ссылка на issues в библиотеке npm https://github.com/npm/cli/issues/4980
    Ответ написан
    6 комментариев
  • В useState записывается предыдущее состояние?

    black1277
    @black1277
    Вольный стрелок
    Установка стейта происходит асинхронно - реакт гарантирует новое состояние к моменту рендера, а не когда вам вздумается. Т.е. он собирает все возможные изменения и применяет их пакетом, перед самым рендером. Это самая частая ошибка начинающих - установить новое состояние и тут же пытаться получить его.
    Ответ написан
  • Как изменить имя скачиваемого файла?

    black1277
    @black1277
    Вольный стрелок
    Атрибут download соблюдается только на ресурсах с тем же доменом.
    Ссылка на документацию https://developer.mozilla.org/ru/docs/Web/HTML/Ele...
    Был похожий вопрос

    Как изменить имя скачиваемого файла?. Там у автора вроде, получилось через XMLHttpRequest
    Ответ написан
    2 комментария
  • Как выбрать все кнопки с одним классом и сделать открытие/закрытие контента?

    black1277
    @black1277
    Вольный стрелок
    Так document.querySelector и выбирает первый элемент, удовлетворяющий поиску. Чтобы добавить действие всем элементам с классом btn-more нужно использовать document.querySelectorAll, который возвращает массивоподобную коллекцию, по которой можно пробежать мапом и навесить действие. Но, основная сложность будет в том, чтобы каждой кнопке сопоставить свои элементы, которые нужно скрывать\показывать. Нужно либо добавить им дополнительные атрибуты с одинаковым значением для каждой группы либо по структуре DOM дерева выбирать нужные.
    Ответ написан
    2 комментария
  • Почему не считывается value инпута?

    black1277
    @black1277
    Вольный стрелок
    Вы считываете значения инпута однократно, в момент выполнения функции test. Для того чтобы это работало как вы хотите - нужно вешать обработчик на инпут, реагирующий на изменение значения в нем
    let test = () => {
    let inp = document.querySelector('input')
    let warn = document.createElement('div')
    let att = inp.getAttribute('value')
    inp.id = 'inpId'
    let inpId = document.getElementById('inpId');
    inpId.addEventListener("input", ()=>{
    if (inpId.value > 3) {
        warn.style.display = 'none';
    }
    })
    warn.classList.add('hi');
    warn.innerHTML = 'Тестовая штука';
    inp.insertAdjacentElement('afterend', warn);
    }
    test();

    ну и скрипт должен располагаться ниже инпута в потоке html
    Ответ написан
    1 комментарий
  • Как сохранить select option в localstorage?

    black1277
    @black1277
    Вольный стрелок
    Чтобы при загрузке страницы был выбран сохраненный вариант из списка option, нужно чтобы у нужного варианта был атрибут selected. Пример:
    <select name="nm" id="nam">
      <option value="QBC">QBC</option>
      <option value="QEF">QEF</option>
      <option value="GHI" selected>GHI</option> <!-- этот вариант будет выбран-->
      <option value="KLM">KLM</option>
    </select>

    значит вам нужно в каждом option выводить переменную вместо selected, которая будет либо пустая, либо равна selected (если сохраненное состояние равно выводимому option).
    Добавил рабочий пример, где всё работает (проверял)
    Пример на функциональных компонентах

    import React, { useState, useEffect } from 'react'
    
    const LocalStorage = () => {
      const date = [
        { symbol: 'RU', label: 'рубль' },
        { symbol: 'USD', label: 'доллар' },
        { symbol: 'EUR', label: 'евро' }
      ]
    
      const [curr, setCurrencies] = useState(date)
      const [currentSymbol, setCurrentSymbol] = useState("EUR") // опция выбранная по умолчанию (если нет данных в localstorage)
    
    // срабатывает один раз при загрузке компонента
      useEffect(() => {
        if(localStorage.getItem('symbol')) {
          const item = localStorage.getItem('symbol')
          setCurrentSymbol(item)
        }
      }, [])
    
    // обработчик - срабатывает при выборе опции списка
      const selectHandler = (e) => {
        localStorage.setItem('symbol', e.target.value)
        setCurrentSymbol(e.target.value)
      }
    
      return (
        <div>
          <select onChange={selectHandler} value={currentSymbol}>
            {
              curr.map(currencies => (
                <option key={currencies.symbol} value={currencies.symbol}>
                  {currencies.symbol} {currencies.label}
                </option>
              )
              )
            }
          </select>
        </div>
      )
    }
    
    export default LocalStorage


    на классовых

    import React, { Component } from 'react'
    
    
    class ClassLocal extends Component {
      constructor(props){
        super(props);
        this.state = {
          curr: [
            { symbol: "RU", label: "рубль" },
            { symbol: "USD", label: "доллар" },
            { symbol: "EUR", label: "евро" }
          ],
          currentSymbol: "EUR"
        }
      }
    
    
      componentDidMount() {
        if(localStorage.getItem('symbol')) {
          const item = localStorage.getItem('symbol');
          this.setState({currentSymbol: item})
        }
      }
    
    
      selectHandler = (e) => {
        localStorage.setItem('symbol', e.target.value)
        this.setState({currentSymbol: e.target.value})
      }
    
      render() {
        return (
          <div>
            <select onChange={this.selectHandler} value={this.state.currentSymbol}>
              {
                this.state.curr.map(currencies => (
                    <option key={currencies.symbol} value={currencies.symbol}>
                      {currencies.symbol} {currencies.label}
                    </option>
                  )
                )
              }
            </select>
          </div>
        )
      }
    }
    
    export default ClassLocal

    Ответ написан
    7 комментариев
  • Как запустить html страницу в контейнере tomcat?

    black1277
    @black1277
    Вольный стрелок
    Нужно сразу открывать страницу документации нужного пакета в docker
    https://hub.docker.com/_/tomcat
    Там найдете, что рабочая директория в образе по умолчанию /usr/local/tomcat, команда для запуска в докер файле CMD ["catalina.sh", "run"] и др. полезную информацию.
    Ответ написан
    Комментировать
  • В чем отличие EventLoop в браузере от EventLoop в Node.js?

    black1277
    @black1277
    Вольный стрелок
    Вы немного запутались. Начиная с 11-й версии Node.js, разница в поведении приведенного вами кода в браузере и ноде - была устранена. Касаемо 6 этапов или фаз, они происходят внутри движка libuv(libuv - это многоплатформенная библиотека C, которая обеспечивает поддержку асинхронного ввода-вывода на основе циклов событий).
    Разница в том, что в Node.js мы можем не дожидаться окончания всех этих фаз, а вклиниться на определенных этапах для исполнения микрозадач (при помощи setImmediate и process.nextTick), а в браузере идет взаимодействие с Web API’s (браузерные или веб API), из которого могут поступать новые события (клики, движения мыши и др.), добавляющие в очередь новые макрозадачи(если установлены обработчики этих событий). Кроме того, в браузере есть рендеринг, который не может быть выполнен пока идет выполнение задачи движком(из этого следует, что необходимо разбивать тяжелые и длительные задачи на части).
    Как я не пытался изложить точнее и короче, к моим словам можно придраться буквально к каждой фразе. Поэтому, лучше самому изучить первоисточник и пару статей на русском:
    What is the Event Loop?
    Объяснение работы EventLoop в JavaScript
    Игра по правилам: Event loop Node.js
    Как устроены цикл событий и стек вызовов в JavaScript
    Ответ написан
    1 комментарий
  • Как сравнить значение времени?

    black1277
    @black1277
    Вольный стрелок
    Ответ написан
    Комментировать
  • Как этот сайт запустить? Что для этого нужно? (Язык тут JS + HTML)?

    black1277
    @black1277
    Вольный стрелок
    Ну во-первых, прочитайте что написано в файлах README.md - обычно там записаны инструкции по установке и запуску.
    Во-вторых, нужно будет произвести установку всех зависимостей из файлов package.json - через консоль в каждой из папок набрать npm install , а для этого нужно установить сначала Node.js
    В-третьих, нужно заглянуть в каждый package.json - чтобы узнать какие команды для запуска используются (обычно это npm run start) и соответственно запустить их в каждой из папок (клиент, сервер). (Хотя возможно настроено на запуск единой командой)
    Ответ написан
    3 комментария
  • Как в sass записать цепочку условий?

    black1277
    @black1277
    Вольный стрелок
    Примерно вот так
    .container 
    	input 
    		&:checked 
    			& ~ .checkmark 
    				&:after 
    					&.container 
    						&:hover 
    							input 
    								& ~ .checkmark 
    									&.container 
    										.checkmark 
    											&:after

    а вообще, можешь сам подобрать - вот тут css-to-sass-converter
    Ответ написан
    Комментировать
  • Как убрать кнопку скачать из аудио html?

    black1277
    @black1277
    Вольный стрелок
    Никак нельзя убрать. Это дефолтный интерфейс тега audio, который неизменяем и выглядит по разному в каждом браузере. Единственный способ - написать собственный интерфейс, используя web-audio api
    Ответ написан
    Комментировать
  • Событие onClick в React вызывает ошибку. Как чинить?

    black1277
    @black1277
    Вольный стрелок
    Ты делаешь условие
    if(IsMusicListShowing == 0)
    и в одной ветке делаешь return, а в другой просто пишешь
    <div>
                <MusicLineInSiteMusic onClick={UnshowMusicList}></MusicLineInSiteMusic>
                <MusicList MusicLinesInMusicList={MusicLinesInMusicList}></MusicList>
            </div>

    а должно через return возвращать, о чем тебе и сообщает ошибка.
    Ответ написан
    1 комментарий
  • Почему не работает innerHTML?

    black1277
    @black1277
    Вольный стрелок
    document.querySelectorAll выбирает не один, а коллекцию элементов. У этой коллекции нет свойства innerHTMl. А у её элементов есть, попробуй так
    let element = document.querySelectorAll("p")[0];
       element.innerHTML="new text";

    или используй document.querySelector, который получает один элемент.
    Ответ написан
    Комментировать