• Почему метод filter, в отличие от старого for, не отрабатывает корректно?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    фигурные скобки лишние: нужно возвращать true / false

    let resultArr = products.filter((product) => {
      return product.price > 100;
    });
    
    // или
    let resultArr = products.filter((product) => product.price > 100);
    Ответ написан
    2 комментария
  • PhpStorm + git 'Contents are identical' почему?

    reffy
    @reffy Автор вопроса
    Я молодец.
    Сижу на Linux. Проблема была в том, что git пытался сохранить права доступа к файлам. Решил проблему изменив в файле .git/config:
    filemode = false
    На всякий ещё поставил:
    git config --global core.filemode false
    Ответ написан
    Комментировать
  • Как отследить выполнение функции класса вне класса?

    Seasle
    @Seasle Куратор тега JavaScript
    Пишем какой-то
    EventEmitter

    class EventEmitter {
    	constructor() {
    		this.handlers = new Map();
    	}
    
    	on(event, handler) {
    		const handlers = this.handlers.has(event) ? this.handlers.get(event) : new Set();
    
    		handlers.add(handler);
    
    		this.handlers.set(event, handlers);
    	}
    
    	emit(event, ...args) {
    		if (this.handlers.has(event)) {
    			const handlers = this.handlers.get(event);
    
    			for (let handler of handlers) {
    				handler(...args);
    			}
    		}
    	}
    }


    В конструкторе создаем экземпляр EventEmitter'а. Добавляем метод on у CustomSelect
    on(event, callback) {
    	this.events.on(event, callback);
    }

    В closeDropdown дописываем this.events.emit('close'); а для customSelectInstanse
    customSelectInstanse.on('close', () => {
    	console.log('Close');
    });
    Ответ написан
    1 комментарий
  • Как сделать такой комментарий в phpstorm?

    Decadal
    @Decadal
    введите следующее:

    /**

    и клавишу Enter

    перед функцией будет сгенерирована документация для функции по ее сигнатуре
    для переменной - документация к переменной с ее типом
    не сможет определить, для чего комментарий - сгенерит структуру вида
    /**
    *
    */
    Ответ написан
    Комментировать
  • Как сделать таймер в кеше?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    При первом посещении сайта, скрипт записывает в localStorage (или куда угодно) время первого посещения. После, запускает таймер, и скажем, каждую секунду проверяет "Прошло ли 60 секунд со времени первого посещения"

    При повторном заходе, время первого посещения сохранится, и его не нужно обновлять. Скрипт опять будет проверять "Прошло ли 60 секунд со времени первого посещения" и изменять свойства страницы если "Прошло"
    Ответ написан
    Комментировать
  • Как правильно реализовать local storage в тудулисте в стиле ООП, чтобы удалять элементы?

    1) Методы completedTask и uncompletedTask практически одинаковые. Объедините их и в объединенный метод передавайте аргумент.
    2)
    const toDoParent = document.querySelector("#todo-block");

    Часто у вас встречается. Нет никакого смысла так делать. Вынесите в конструктор
    3) localStorage.setItem и localStorage.getItem нужно вынести в отдельную абстракции ввиде класса Storage с методами get и set.
    4) Вам стоит выделить как минимум три сущности ToDoList - он будет вызывать ToDo и Storage
    ToDoList - создает новую задачу (new ToDo) и общается с хранилищем (Storage)
    ToDo - знает как только создать отдельную dom ноду в зависимости от переданных параметров и возвращает эту ноду,
    Storage - работает с хранилищем, записывает в него или читает, в данном случае это localStorage, а может быть что-то другое. Например заходите писать в куки. Вы меняете реализацию методов set и get и приложение в лице ToDoList все также продолжит работать. Так как ему не важна реализация Storage, а важен лишь интерфейс к нему (get и set)
    Ответ написан
    2 комментария
  • Как сделать карточку товара ссылкой?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    Можно задать карточке position:relative,
    a ссылке - position:absolute;

    Пример на jsbin

    .card {
      position: relative;
    }
    
    .card-link {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1;
    }
    Ответ написан
    Комментировать
  • Почему некорректно работает цикл?

    Stalker_RED
    @Stalker_RED
    Ответ написан
    Комментировать
  • SASS. Компиляция. От чего зависит результат?

    @Flying
    У вас placeholder %gallery__man-flex определён внутри .gallery, таким образом все места где будет использоваться этот placeholder будут наследовать контекст его определения.

    В остальных случаях запись вида &__man означает "расширение текущего селектора", поэтому очевидно добавления контекстного селектора не происходит. Если он нужен - то стоит использовать & &__man
    Ответ написан
    2 комментария
  • Верстка по БЭМ. Как будет правильнее?

    @unsweet
    Я бы вообще так сделал
    <div class="pop-up">
      <img src="#" alt="Картинка">
      <textarea class="pop-up__textarea" cols="30" rows="10"></textarea>
      <а class="button pop-up__button">Текст на кнопке</а>
    </div>

    Ибо зачем громоздить лишние встроенные элементы.

    А по вопросу: тут нужно смотреть, насколько разные кнопки используются, в целом я бы использовал первый вариант.
    Ответ написан
    1 комментарий
  • Верстка по БЭМ. Как будет правильнее?

    Get-Web
    @Get-Web Куратор тега HTML
    Front-End Developer
    Первый пример более правильный. Кнопка является отдельным блоком, который вы модифицируете в контексте pop-up, а содержимое кнопки является элементом кнопки. Такую кнопку вы можете без проблем использовать в любом месте сразу же с элементом button__text и модифицировать в контексте других блоков.

    2. Не нужно использовать повторно

    Даже если не нужно использовать повторно, возможно в будущем понадобиться. Сделав один раз более гибкий блок, вы упростите себе поддержку вашего проекта.
    Ответ написан
    Комментировать