Ответы пользователя по тегу JavaScript
  • Как отменить переход по ссылке?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    $('#filter').submit(function(event){
          var filter = $(this);
    event.preventDefault()
    Ответ написан
    Комментировать
  • Можно ли из Сео оптимизатора вырасти в веб разработчика?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Да какая разница, кем вы были или на данный момент являетесь. Переквалифицироваться может любой.
    У вас так вообще допинг. Вы работаете сеошником, вы знаете сайты, лазиете в код, что-то даже правите. У вас уже есть понимание платформы. Пока работаете, учите, делайте что-то на фрилансе.

    Заведите свой гит, делайте там свои проекты, читайте книжки, смотрите уроки на youtube, как поймёте, что готовы, не спешите, вы не готовы!!! Сделайте с 0 свой проект для кота сами, без кого либо. С 0 сверстайте, навешайте jquery плагинчиков, натяните на wp, выложите на хостинг, разместите проект в гите и потом можно идти на позицию джуна. Вопрос лишь какого, js джуна или php джуна. Лучше выберите что-то одно.
    Ответ написан
    Комментировать
  • Как сделать кнопку-переключатель и блок выбора тарифов?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    Вкладки(tabs) используйте у бутстрапа и всё
    Ответ написан
    Комментировать
  • Как при нажатии добавить класс и через несколько секунда заменить на другой?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    $(document).ready(function(){
      $('.likes').click(function () {
          var like = $(this);
          like.addClass('voted');
    
          setTimeout(function(){
              like.addClass('ok');
          }, 3000)
       });
    });
    Ответ написан
    Комментировать
  • Можно ли использовать JavaScript не только на сайтах?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Десктоп приложения - electron
    Мобильные приложения - cordova, react native, vue native и всякие там native
    Фронтенд сайтов, ну тут ясно
    Бекенд для сайтов и не только сайтов - node.js
    Консольные утилиты (разные cli) - node.js
    И по сути всё, что угодно
    Ответ написан
    1 комментарий
  • Почему Eslint выделяет все красным?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Просто исправьте код по правилам нажав на красную линии, появится красная лапочка, там в меню будет пункт исправить. С другой стороны, а что вы хотели увидеть подключив линтер?
    У вас табы для отступов, а ему нужно 2 пробела. Плюс условия != или == ну это детский сад. !== или === должно быть, ну и т.д. Пишите код правильно!!! Функция должна объявляться правильно, с 2мя пробелами, до круглых скобок и после, а у вас слитно.
    Ответ написан
  • А есть ли jQuery height() чистом js?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Если элемент скрыт(display: none) - то его высота равна 0, jquery ни jquery.
    Если элемент скрыт просто визуально(opacity и т.п.), то всегда покажется реальная высота. Исключение - это transform: scale.

    Или же, высота может быть 0, но благодаря padding и border высота есть. Нужно просто учитывать эти свойства при получении размера, просто тупо сложив

    Дайте код
    Ответ написан
  • Почему не выводятся на экран числа массива с помощью цикла for?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Не нужно делать каждый раз перезапись DOM. Делайте это 1 раз, но в процессе работайте с переменной.

    https://jsfiddle.net/adpmb230/
    Ответ написан
    Комментировать
  • Обработка catch при async await?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Смотря как ты отображать собрался эти ошибки. Я обрабатываю ошибки в компонетах, а не в хранилище, т.е. там, где вызываю метод из хранилища.

    За свой опыт придумал 3 реализации:
    1) Создать миксин с методом показа ошибок
    2) В самом обработчике ajax сделать обработку ошибок, если у тебя axios то вообще фигня делов, но, т.к. это плагин, то внутри плагина нет возможности достучаться до компонентов и каким-то образом вывести какое нибудь окошко, подойдёт лишь для console.log и т.п. обработок ошибок.
    3) Основан на примере 2. В самом обработчике ajax сделать обработку ошибок так, что бы при ошибке в запросе, ошибка записывалась в store, создать компонент, в котором будет реализовано отображение ошибок из store, чистить store, после показа всех ошибок, например, по таймеру.

    Мой личный опыт: я юзаю пока что 1й вариант, в миксине я юзаю вызов из прототипа метод с показом кастомных алертов. Минус подхода в том, что нужно импортировать миксин и прописывать в catch метод вызова обработчика ошибок, передовая в него error из catch/

    Думал думал и придумал вариант 3, но ещё не реализовывал.
    Ответ написан
    Комментировать
  • Как подключить jQuery через es6?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Комментировать
  • Что такое callback?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    https://jsfiddle.net/nzbgr9fd/
    Ну так setTimeout - это отложенная функция, ассинхронная. Вызывайте колбек внутри таймер, а не следом за ним.
    Ответ написан
  • Можно ли обратится в js к элементу по типу?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Правильнее будет сказать не по типу, а по атрибуту))

    document.querySelectorAll('[type="email"]')
    document.querySelectorAll('[type="text"]')
    document.querySelectorAll('[type="tel"]')
    // и т.п.
    Ответ написан
    Комментировать
  • Как правильно получить имя файла, выбранного в форме загрузки файлов с помощью JQuery?

    bootd
    @bootd Куратор тега HTML
    Гугли и ты откроешь врата знаний!
    $("news_image") - но тут селектор не правильный. Не хватает либо . либо #. Но и у вас в коде нет такого селектора, но есть name="newsimage"
    Может нужно так:
    $(document).ready(function() {
      var uf=$('[name="news_image"]');
      uf.change(UploadStatus);
      UploadScanUpdate();
    });
    Ответ написан
  • Как запретить разворачивать (fullscreen) видео на весь экран в браузере?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    никак))) А почему вас это мучает?
    Ответ написан
  • Как правильно делать промисы?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    p исполнится через 5 секунда, а then - это то, что будет после 5 секунд. Если вы хотите, что бы все then были через 5 секунд, то then должен возвращать также промис. А у вас then ничего не возвращает, а просто показывает alert. Оберните вызов alert в промисы с таймером и тогда будет счастье
    Ответ написан
    Комментировать
  • Много ли ресурсов требует jQuery?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    jQuery отличный инструмент и я не перестану об этом говорить. Кто бы там не хейтил, jQuery говно, юзайте нативный js, он уже всё может и т.п(чаще всего - это молодёж, которая пишет на react или vue, angular!!! Ясен хер там не нужен jquery). Дайте этим людям написать одинаковые проекты, что бы 1 писал на ваниле, а другой на jquery, я посмотрю на те решения, что были придуманы на ваниле, когда в jquery это решается 1м методом. Поверьте, врятли результат можно будет сопоставить. Не просто же так на крутых и новомодных проектах все юзают транспиляторы для того, что бы новый новый синтаксис и фичи перевести в код старого формата!!! Потому что веб не готов ещё в полной мере юзать все новшества, что приходят в js.

    Ребята из бутстрап тоже пошли вперёд планеты всей и переписывают свой фреймворк на нативный js. Несколько лет уже переписывают и были статьи, как же они охерели, что всё не так просто, как кажется)))

    Всё что jquery и делает так это работа с DOM и ajax по сути своей, всё остальное - это мелочи по большей части не использующиеся. jQuery был и остаётся пока ещё, при условие всяких там ES10-20-40 фаворитом при создании обычных сайтиков, просто тупо он решает множество вопросов кроссбраузерности и его работа с DOM в разы удобнее нативной.

    Да, он не предназначен для прокладывания или создания как-то крутой архитектуры и создания сайтов на по типу SPA. Он не для этого создан и не эти задачи решает. Используя его для подобных вещей вы в полной мере закопаете себя в куче известной субстанции.

    Насчёт быстродействия - я никогда не замечал жутчайших лагов или прочих тормозов при использовании jquery.
    Любая массивная работа с DOM по историческим причинам накладна для браузера. Но для того, что бы кликать и показывать окошки, скрывать\показывать блоки, отправлять формочки, то jQuery делает это без каких либо проблем и без всяких лагов.

    Для массивной работы с DOM, обновлением контента через ajax или работы с огромными массивами данных на стороне фронта лучше использовать специальные фреймворки на по типу react, vue и т.п.

    На фрилансе, при создании сайтиков я юзал и буду пока что юзать jquery как решение, которое сразу же отметает кучу проблем.

    Учитесь определять объёмы и целесообразность использования тех или иных библиотек для ваших задач.
    Если вам нужно лишь сделать пару кликов на кнопки что бы показать красивое окошко, то jquery не обязательно юзать.
    Ответ написан
    Комментировать
  • Как правильно отслеживать scroll вниз и в верх, js 6?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    В вашем коде
    let scrollTop = body.scrollHeight;
    имеет область видимости внутри обработчика события и за его пределами такой переменной нет.
    Делайте так:
    body.addEventListener('scroll', () => { 
        let scrollTop = body.scrollHeight;
        console.log(scrollTop);
    
    let headerWrapper = document.querySelector('.header-wrapper');
    console.log(headerWrapper);
    
    if(scrollTop >= 100){
        headerWrapper.classList.add('hide');
    }else{    
        headerWrapper.classList.remove('hide');
    }
    });
    Ответ написан
    3 комментария
  • Как задать несколько стилей через js?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    document.getElementById("ad").style.cssProp
    document.getElementById("ad").style.cssProp
    document.getElementById("ad").style.cssProp
    document.getElementById("ad").style.cssProp
    Ответ написан
    Комментировать
  • Использование глобальных переменных Vue (vuex) в нескольких компонентах, как оптимизировать?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Работа с vuex тут не причём. Вы сами сказали, что это большие компоненты.
    v-show делает лишь display: none/block
    v-if удаляет разметку из DOM и рисует её заново, на что тратиться гораздо больше ресурсов, нежели просто скрыть блок

    Делайте так, сначала, создавайте тело вкладки лишь тогда, когда вы запросили содержимое вкладки и сделайте условие создания тела вкладки через v-if, а скрытие/показ делайте через v-show
    Ответ написан