• Как обрабатывать код 400 и 401?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Тоже сталкивался с этим.
    Я, помнится, в своё время сразу внимательно перечитал страницу проекта на гитхабе.
    И там, внезапно, нашлось, то что нужно. https://github.com/axios/axios#handling-errors

    Попробуйте тоже в будущем почитывать документацию ;)
    Ответ написан
    Комментировать
  • Допустимо ли использование Options API в Vue 3?

    wapster92
    @wapster92
    Заявлений от разработчиков, что options api уберут не было. Планы на развитие можешь посмотреть тут. Еще стоит учитывать стилистику компании при использовании vue 3, кто-то миксует, где-то возможно только Options Api, кто-то полностью на новый api перешел
    Ответ написан
    Комментировать
  • Как отключить приближение к формам в мобильной версии сайта?

    zzloy
    @zzloy
    Дизайнер
    Если речь идёт о мобильной версии, в ней как минимум должно быть всё для этого подготовлено. То, что браузер виляет масштабом как хочет, гововорит как минимум об отсутствии этой строки:

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">


    О том что это, почему, зачем и как читайте тут.
    Ответ написан
    1 комментарий
  • Как из родителя запустить метод в ребенке Vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    через ref:

    <button @click="$refs.child.someMethod()">call child method</button>
    <child-component ref="child"></child-component>
    Ответ написан
    2 комментария
  • Как работает setTimeout в цикле?

    Если коротко, то setTimeout срабатывает уже после того как цикл закончился. Даже если вы укажете setTimeout (func, 0 ) всё равно выполнится только после цикла, независимо от времени работы цикла.
    К этому моменту i будет равно 4 т.к. используя var переменная будет объявлена только 1 раз. Тоже самое что :
    var i;
    for (i = 0; i < array.length; i++)

    Используя let для каждой итерации будет создаваться отдельная переменная с разным значением.
    Ответ написан
    1 комментарий
  • Как добавить класс если в блоке что то есть?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    через css хочу скрыть его, когда пуст

    В такой формулировке можно обойтись без дополнительных классов:
    .wishlist_products_counter_number:empty {
        display: none;
    }
    Ответ написан
    1 комментарий
  • Как отключить скролл страници при фокусе определенного элемента?

    neuotq
    @neuotq
    Прокрастинация
    Вам нужно следить за событиями keydown, далее снимаем действие по умолчанию с помощью preventDefault.
    Таким образом в самом общем случае отключения реакции на все кнопки будет:

    document.addEventListener('keydown', e => {
      e.preventDefault();
      return false;
    });


    Далее ищите нужные коды для своих кнопок, отключаете поведение по умлочанию, добавляете своё поведение.
    Например:

    document.addEventListener('keydown', e => {
       if (e.key === 'ArrowDown') {
        e.preventDefault();
        //Ваша логика
        return false;
      }
    });
    Ответ написан
    Комментировать
  • Есть ли бесплатные аналоги плагина introjs.com?

    @zkrvndm
    Софт для автоматизации
    Ответ предоставлен чат-ботом https://claude.ai

    Да, существуют бесплатные аналоги плагина Intro.js для создания обучающих подсказок на сайте. Вот несколько вариантов:

    1) Driver.js - простой в использовании JS плагин с открытым исходным кодом. Позволяет создавать подсказки и обучающие туры по сайту.

    2) Hopscotch - еще одна библиотека для создания подсказок с открытым кодом. Легко настраиваемая и кастомизируемая.

    3) Joyride - плагин на jQuery для пошаговых инструкций по сайту. Прост в интеграции.

    4) Tourist.js - реализует подсказки в стиле попапов с подсветкой элементов. Небольшой размер.

    5) Bootstrap Tour - создан на основе популярного фреймворка Bootstrap. Интуитивно понятный интерфейс.

    Посмотрите демо этих плагинов, выберите понравившийся по функционалу и простоте использования. Для быстрого старта оптимально подойдут Driver.js или Hopscotch. Удачи!


    P. S. Пользуйтесь поиском или чат ботами прежде, чем спрашивать что-то очевидное!
    Ответ написан
    1 комментарий
  • Как вставить в таблицу данные из массива?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Можно использовать индекс столбца как индекс для доступа к внутренним массивам данных:
    let Table = this.$refs.theTable
    
    // rows
    for(let rowIndex = 0; rowIndex < Table.rows.length; rowIndex++) {
        let row = Table.rows[rowIndex];
    
        // cells
        for(let cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {
    
            // is data?
            if(this.allDataOfDays[cellIndex] && this.allDataOfDays[cellIndex][rowIndex]) {
                row.cells[cellIndex].innerText = this.allDataOfDays[cellIndex][rowIndex];
            }
        }
    }
    Ответ написан
    Комментировать
  • Как отобразить элементы таблицы скрытые при помощи v-show?

    modelair
    @modelair
    unsocial
    подобное условие должно возвращать ref, т.е. должно быть computed
    чтобы computed стал функцией, верните им функцию

    <script setup>
    import { computed } from 'vue'
    
    const ifShow = computed(() => {
      return (isShow) => isShow === 'some day'  
    })
    </script>
    
    <template>
      <span v-show="ifShow('some day')">Hi!</span>
    </template>

    тут

    UPD: ну или с Options API, как многие любят.
    export default {
      data() {
        return {}
      },
      computed: {
        ifShow() {
          return (isShow) => isShow === 'some day'  
        }
      }
    }
    Ответ написан
    Комментировать
  • Как отфильтровать строки таблицы во vuejs?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Добавим в компонент свойство, которое будет представлять выбранную строку:

    data: () => ({
      selected: null,
      ...
    }),

    Отображаем выбранную строку, если она есть; или все:

    <tr v-for="(n, i) in (selected || objSearch)">

    Клик по кнопке - сбрасываем свойство selected, если оно установлено; в противном случае устанавливаем:

    @click="selected = selected ? null : { [i]: n }"

    https://jsfiddle.net/dg4bxhu2/

    Или, если "необходимо скрыть" понимать буквально, то можно определить класс, который будет прятать строки:

    .hidden {
      visibility: hidden;
    }

    Назначать его строке, если есть выбранная строка и она не является текущей:

    <tr
      v-for="(n, i) in objSearch"
      :class="{ hidden: selected !== null && selected !== i }"
    >

    Соответственно, установка значения selected:

    @click="selected = selected === null ? i : null"

    https://jsfiddle.net/dg4bxhu2/1/
    Ответ написан
    Комментировать
  • Как в один столбец таблицы вывести значения из объекта?

    0xD34F
    @0xD34F Куратор тега Vue.js
    <template v-for="v, k in tableData">
      <tr>
        <td>{{ k }}</td>
      </tr>
      <tr v-for="n in v">
        <td>{{ n.name }}</td>
      </tr>
    </template>
    Ответ написан
    Комментировать
  • Как заменить определенные пустые значения массива на null?

    XanXanXan
    @XanXanXan
    arr.forEach((e, i) => {
     arr[i] = (e === ' ' && arr[i - 1] === ' ') ? null : e;
    });
    Ответ написан
    Комментировать
  • Как отобразить структуру данных в виде таблицы?

    0xD34F
    @0xD34F Куратор тега Vue.js
    А что, нормальные имена свойствам придумать было никак? Зачем все эти attr? Непонятно же ни хрена.

    Чтобы не прописывать отдельно строки с rowspan'ами и без, добавьте в v-for индексы, которые затем проверяйте в v-if ячеек с rowspan'ами - рендерить их нужно только при нулевых значениях.

    Почему выводится только objects[0]? Неужели в objects может быть только один элемент? Заверните то, что сейчас есть в ещё один template, в котором будет v-for по элементам objects.

    Можно немного сократить обращения к вложенным свойствам - для этого деструктурируйте элементы массивов, перебираемых в v-for.

    methods: {
      rowspan: attr1 => attr1.reduce((acc, n) => acc + n.attr3.length + 1, 0),
    },

    <template v-for="obj in objects">
      <template v-for="{ road, attr1, TOTAL } in obj.data">
        <template v-for="({ attr2, attr3, attr4 }, iAttr1) in attr1">
          <tr v-for="(attr3Item, iAttr3) in attr3">
            <td :rowspan="rowspan(attr1)" v-if="!iAttr1 && !iAttr3">{{ road }}</td>
            <td :rowspan="attr3.length" v-if="!iAttr3">{{ attr2 }}</td>
            <td>{{ attr3Item.road }}</td>
            <td>{{ attr3Item.cargo }}</td>
            <td>{{ attr3Item.amount }}</td>
            <td>{{ attr3Item.wo_nds }}</td>
          </tr>
          <tr>
            <td colspan="2">Итого {{ attr2 }}:</td>
            <td>{{ attr4.cargo }}</td>
            <td>{{ attr4.amount }}</td>
            <td>{{ attr4.wo_nds }}</td>
          </tr>
        </template>
        <tr>
          <td colspan="3">Итого {{ road }}:</td>
          <td>{{ TOTAL.cargo }}</td>
          <td>{{ TOTAL.amount }}</td>
          <td>{{ TOTAL.wo_nds }}</td>
        </tr>
      </template>
    </template>

    https://jsfiddle.net/ctnr98v7/4/
    Ответ написан
    3 комментария
  • Как объединить два массива объектов в один массив?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    let first  = [ {name: 'Maxim', secondName: 'Ivanov'}, {name: 'Lena', secondName: 'Kirolova'} ];
    let second = [ {age: 20}, {age: 18} ];
    
    let third = first.map((item, index) => ({...item, ...second[index]}));
    
    console.log(third);
    Ответ написан
    2 комментария
  • Как остановить выполнение функции после выбора значения?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Не надо ничего "останавливать". Пусть основанием для выполнения запросов будет не любое изменение данных, а только пользовательский ввод.
    Ответ написан
    Комментировать
  • Как задать событие click для генерируемого DOM элемента?

    @Kadonomaro
    Используйте стандартное делегирование событий https://learn.javascript.ru/event-delegation
    Ответ написан
    Комментировать
  • Как задать событие click для генерируемого DOM элемента?

    vovka3003
    @vovka3003
    Фрилансер. Инженер систем безопасности.
    Посмотрите в сторону MutationObserver.
    Ответ написан
    Комментировать
  • Что нужно изменить, чтобы скрипт работал без jQuery?

    Adamos
    @Adamos
    https://youmightnotneedjquery.com/#on и далее по пунктам
    Ответ написан
    Комментировать
  • Могу я задать вопрос по коду, как мегаджун JS?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) Плохой код, который выполняет задачу, лучше чем отсутствие кода
    2) Перед работой составьте примерный план, например: "сначала получаем данные, потом с ними делаем это или это, потом выводим..." Это помогает не лепить откровенную фигню по ходу дела и не переписывать все по 10 раз.
    3) Смысл рассматривать простыню из кода новичка отсутствует, так как это похоже на оценку походки будущей фотомодели по первым шагам в ходунках. Никто не пишет хороший код сразу, учиться и писать много - лучший путь обучения.
    4) Смотрите на чужие готовые решения, думайте как использовать интересные приемы, именно свои выводы и ошибки делают вас программистом+, а не гов*окодером. Задатки и желание у вас есть, значит все получится.
    Ответ написан
    Комментировать