• Как сделать задержку на открытие ссылки?

    passshift
    @passshift
    php, js, html5, css
    Суть этого примера в том, что нельзя нажать на кнопку(и) несколько раз пока последняя запрашиваемая страница не откроется, вероятно это будет полезно...

    Также я реализовал возможность открыть страницы в текущем окне или в новом, за это отвечает содержимое
    атрибута data-target="" :

    <button class="progress-button" data-uri="https://toster.ru/q/311167?e=3769167#comment_1058109" data-target="_blank">Как сделать задержку на открытие ссылки?</button>
    
    <button class="progress-button" data-uri="http://yandex.ru" data-target="_self">Еще одна кнопка...</button>


    $(document).ready(function() {
    
    $(function() {
    var flag = new Boolean(true); // Защитит от частого нажатия на кнопку
    
      // Клик
      $('.progress-button').click(function(e) {
        openUrl($(this));
        e.preventDefault();
      })
    
    /**
     * Открывает ссылку с задержкой
     * 
     * @param {object} button - Нажатая кнопка
     * @return {boolean}
     */
      function openUrl(button) {
        var delay = 2000, // Задержка 2 секунды
          text = button.text(), // Текст который будет задан кнопке после окончания загрузки
          uri = button.attr('data-uri'); // URL
      
         // Проверяем не начата ли загрузка какой-либо ссылки
          if (flag == true) {
            flag = false;
          
          // Показываем загрузку
          button.text('загружаю...');
          
            // С задержкой открываем URL, возвращая штатный текст кнопке, разрешаем открывать новые ссылки
            setTimeout(function() {
              flag = true;
              button.text(text);
              
              // Проверяем открыть ссылку в новом окне или в текущем
              if (button.attr('data-target') === '_blank') {
              window.open(uri);
              return;
              }
              
              window.location = uri;
              return;
              
            }, delay);
          }
        
        return;
      }
      
    });
    
    });
    Ответ написан
    5 комментариев
  • Как умножить два числа на js?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    parseFloat()

    Нестареющая классика
    Q3mkcnl.gif
    Ответ написан
    6 комментариев
  • Как урезать свой перфекционизм?

    Запомните для этих случаев одну великую фразу "Ладно это я потом переделаю когда время появится" :)))
    Ответ написан
    7 комментариев
  • Как урезать свой перфекционизм?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    Чтобы перестать делать лучше то, что ещё не сделано до конца, нужно понять одну простую истину: Запущенный проект лучше, чем не запущенный.

    Давайте потренируемся:
    • Что лучше: запущенный проект с несжатыми стилями или незапущенный со сжатыми?
    • Что лучше: не запущенный проект с десятью страницами или запущенный с тремя?
    • Что лучше: запущенный проект c jQuery или не запущенный без jQuery?


    Надеюсь, вы смогли выбрать! Как узнать, что пора запустить проект? (Под запуском я имею в виду «показать людям». Например, если вы решили написать библиотеку, давайте считать «проект запущенным», если вы выложили её на гитхаб) Нужно прикинуть, сколько времени вам надо на разработку и умножить на два. Если получилось больше двух недель, то стоит разбить проект на части и прикинуть так про каждую часть. Соответственно, ставите дедлайны.

    Промежуточные дедлайны помогают успеть к последнему. Старайтесь сначала реализовать основную функциональность, а потом дополнительную. Если не успеете к дедлайну доделать дополнительное — сначала запустите основное, а потом видно будет, надо ли вообще доделывать дополнительное.

    Ну и не беритесь за каждую идею, а выбирайте самые инетересные. Если вы будете делать пять проектов одновременно, скорее всего ни один не доделаете.

    Удачи!
    Ответ написан
    4 комментария
  • Как не распыляясь дотащить до front-end мидл девелопера?

    Apathetic
    @Apathetic
    Frontend
    Я вот, в принципе, джун по опыту именно программирования. Но по опыту управления могу сказать точно - все эти аббревиатуры - полная фигня. Важны не аббревиатуры, важна способность быстро их усваивать. Больше того скажу, важна способность быстро переключаться на другие фреймворки, другие среды разработки, другие языки. Это всё - не более чем инструменты. И для этого нужно глубоко понимать именно основы программирования, паттерны, алгоритмы, вот это всё. В освоении этого может помочь только один способ: ебашить (извините за мат, но это самое подходящее слово).
    Ответ написан
    Комментировать
  • Куда двигаться дальше?

    @DP-Studio
    20 лет веб-разработки
    О попытках верстать с макета надо не задумываться, а садиться и делать. Вот сразу и поймёте куда дальше, когда затыки начнутся. Если говорить о фронт-энде, то без JS никуда сейчас. Хотя-бы на уровне "Шо делать c jQuery"
    Ответ написан
    Комментировать
  • Есть ли рускоязычная среда програмирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    я не думаю что вам будет понятнее такой код:
    класс ПростойКласс {
        приватно:
            свойство строка названиеПеременной
        публично конструктор (строка названиеПеременной) {
             контекст.названиеПеременной = названиеПеременной;
        }
        // ...
    }
    
    ПростойКласс[] массивКлассов = создать ПростойКласс[10];
    пока (беззнаковое целое итератор = 0; итератор < 10; итератор++) {
        массивКлассов[итератор] = создать ПростойКласс("строка передаваемая в конструктор);
    }


    Вообще все эти понятия типа "функция может возвращать значение" (точнее наоборот, она обычно возвращает значение но может и не возвращать) родом из математики, и там никто не ноет что "почему все называют эти все штуки буквами греческого алфовита". Никто не кричит "почему синус принято обозначать sin а не син" и т.д.

    Тут так же. Знание самого языка не поможет вам понять смысла конструкций типа for.
    Ответ написан
    3 комментария