Ответы пользователя по тегу JavaScript
  • Как заставить работать чекбоксы внутри Choices.js?

    @maya042
    HTML,CSS,JS,React
    Я делала без инпутов и меняла иконки, в зависимости от того, выбран ли option.
    Наверное с атрибутами инпутов так тоже можно.
    В методе choice проверяем data.selected и в зависимости от результата устанваливаем класс или атрибут

    callbackOnCreateTemplates: function(template) {
                    return {
                        item: ({ classNames }, data) => {
                            return template(`
                                  <div class="${classNames.item} ${
                                  data.highlighted
                                    ? classNames.highlightedState
                                    : classNames.itemSelectable
                                } ${
                                  data.placeholder ? classNames.placeholder : ''
                                }" data-item data-id="${data.id}" data-value="${data.value}" ${
                                  data.active ? 'aria-selected="true"' : ''
                                } ${data.disabled ? 'aria-disabled="true"' : ''}>
                                     ${data.label}
                                     <button type="button" class="choices__button" aria-label="Удалить марку: ${data.label}" data-button="">Удалить марку</button>
                                  </div>
                                `);
                        },
                        choice: ({ classNames }, data) => {
                            var icon = (data.selected) ? 'checked' : 'unchecked';
                            return template(`
                                  <div class="${classNames.item} ${classNames.itemChoice} ${
                                  data.disabled ? classNames.itemDisabled : classNames.itemSelectable
                                }" data-select-text="${this.config.itemSelectText}" data-choice ${
                                  data.disabled
                                    ? 'data-choice-disabled aria-disabled="true"'
                                    : 'data-choice-selectable'
                                } data-id="${data.id}" data-value="${data.value}" ${
                                  data.groupId > 0 ? 'role="treeitem"' : 'role="option"'
                                }>
                                    <i class="flaticon-${icon}"></i> 
                                    ${data.label}
                                    <span>${data.customProperties.num}</span>
                                  </div>
                                `);
                        },
                    };
                },
    Ответ написан
  • Почему EventListener отрабатывает, в то время как запущен большой цикл?

    @maya042
    HTML,CSS,JS,React
    https://github.com/azat-io/you-dont-know-js-ru/blo...
    Для console.log нет спецификаций и требований, разные браузеры реализуют ее по-разному. Ввод-вывод сам по себе медленный и может блокировать другие программы, поэтому для браузера может быть эффективнее обрабатывать вывод в консоль в фоне, пока выполняются следующие команды.
    Ответ написан
    Комментировать
  • Последовательность чтения кода браузером?

    @maya042
    HTML,CSS,JS,React
    Интересно, если поставить задержку, то в консоли остается первое значение.
    Видимо пока console.log еще выполняется, но не вывел значение, начинает выполняться изменение innerHTML, которое заканчивается раньше, чем console.log вывел значение.
    <script>
                function init() {
                var planet = document.getElementById("greenplanet");
                console.log(planet );
                setTimeout(() => {
                	planet.innerHTML = "Red Alert: hit by phaser fire!";	
                },1000);
            }
                window.onload = init;
    </script>
    Ответ написан
  • Как в Choices.js сделать плейсхолдер?

    @maya042
    HTML,CSS,JS,React
    .choices__list--dropdown .choices__placeholder {
    display: none;
    }
    Ответ написан
    Комментировать