• Как сделать кликабельную кнопку?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Надо менять код до тех пор, пока не заработает как надо.
    Ответ написан
    Комментировать
  • Как сложить radio и checkbox и вывести итоговой цифрой в форме на jquery?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const form = document.querySelector('form');
    
    form.addEventListener('change', () => {
      form.querySelector('.result').innerText = Array
        .from(form.querySelectorAll(':checked'))
        .reduce((acc, n) => acc + +n.getAttribute('rel'), 0);
    });
    
    form.dispatchEvent(new Event('change'));
    Ответ написан
    Комментировать
  • Как сделать чтобы при нажатии на кнопку открывался только один элемент, а не все?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Сразу определим селекторы элементов и класс, они нам дальше понадобятся:

    const blockSelector = 'селектор блоков';
    const buttonSelector = 'селектор кнопок';
    const activeClass = 'класс, показывающий блок';

    Класс надо переключать не у всех блоков сразу, а у того, который соответствует нажатой кнопке. Как определить, какой блок нужен? Можно просто по индексу. Нажали третью кнопку - нужен третий блок. Как узнать индекс кнопки? Например, он передаётся в коллбек метода forEach. Т.е., в список параметров внешнего forEach добавляем индекс, и вместо внутреннего forEach выполняем обращение к соответствующему элементу коллекции блоков:

    const blocks = document.querySelectorAll(blockSelector);
    const buttons = document.querySelectorAll(buttonSelector);
    
    buttons.forEach((n, i) => {
      n.addEventListener('click', () => {
        blocks[i].classList.toggle(activeClass);
      });
    });

    Кстати, создавать отдельные обработчики клика для каждой из кнопок не обязательно, можно сделать один общий. Как при этом получать индексы? - их можно прицепить прямо к кнопкам. Например, в виде data-атрибута:

    const onClick = function({ currentTarget: { dataset: { index } } }) {
      this[index].classList.toggle(activeClass);
    }.bind(document.querySelectorAll(blockSelector));
    
    document.querySelectorAll(buttonSelector).forEach((n, i) => {
      n.dataset.index = i;
      n.addEventListener('click', onClick);
    });

    Также есть вариант вычислять индекс при клике:

    const blocks = document.querySelectorAll(blockSelector);
    const buttons = document.querySelectorAll(buttonSelector);
    
    buttons.forEach(n => n.addEventListener('click', onClick));
    
    function onClick() {
      const index = Array.prototype.indexOf.call(buttons, this);
      blocks[index].classList.toggle(activeClass);
    }

    А вообще, если у каждой из пар кнопка-блок есть отдельный общий предок (const containerSelector = '...';), то индексы не нужны. Достаточно от нажатой кнопки подняться до общего предка кнопки и блока, и найти внутри блок (а можно даже и не искать, если добавлять класс контейнеру; конечно, стили придётся в этом случае немного изменить, вместо .блок.класс будет .контейнер.класс .блок):

    const toggleBlock = button => button
      ?.closest(containerSelector)
      ?.querySelector(blockSelector)
      .classList
      .toggle(activeClass);
    
    
    // можно добавить обработчик клика каждой кнопке индивидуально
    document.querySelectorAll(buttonSelector).forEach(function(n) {
      n.addEventListener('click', this);
    }, e => toggleBlock(e.currentTarget));
    
    // или один раз на всю страницу
    document.addEventListener('click', e => {
      toggleBlock(e.target.closest(buttonSelector));
    });
    Ответ написан
    Комментировать
  • В основе flex или inline-block?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Дело в том, что флекс был не всегда. И раньше элементы в ряд выстраивали инлайн-блоками, ещё раньше флоатами.

    Сейчас инлайн-блок нужен для того, для чего придуман, т.е. чтобы элемент получил строчно-блочное отображение. Т.е. элемент ведёт себя снаружи как строчный, а внутри как блочный. А также реагирует на свойства задающие ширину, высоту, отступы.

    В современном мире для построения сеток используют флексы и гриды.
    Ответ написан
    2 комментария
  • Как вытащить параметр из ссылки?

    Stalker_RED
    @Stalker_RED
    Будь это нормальные ссылки, можно было бы сделать так
    const number = new URLSearchParams(link).get("TicketNumber");

    Но у вас там вместо амперсандов в качестве разделителя точка с запятой. И чем "чинить" такие ссылк проще уж сразу регуляркой.
    TicketNumber=(\d+)
    https://regex101.com/r/eASIwF/1
    Ответ написан
    1 комментарий
  • Как создать тег на хабр Q & A?

    0xD34F
    @0xD34F
    Открываете форму обратной связи. В выпадающем списке "тема" выбираете пункт "гениальная идея". В текстовом поле "текст сообщения" излагаете суть - что за тэг, и почему его следует добавить. Подсказка: "почему следует добавить" - это, как минимум, наличие уже существующих вопросов, к которым новый тэг можно будет прицепить, и, наверное, не в количестве 3-5-10 штук, а побольше. Так что прежде чем предлагать добавление тэга, стоит воспользоваться поиском - убедитесь, что оно того стоит.
    Ответ написан
    Комментировать
  • Как сгруппировать и отсортировать массив имён?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const groupedAndSortedArr = Object
      .values(arr.reduce((acc, n) => ((acc[n[0]] ??= []).push(n), acc), {}))
      .sort((a, b) => a[0][0].localeCompare(b[0][0]));
    Ответ написан
    6 комментариев
  • Как сделать адаптивное поле ввода input?

    Newto
    @Newto
    Input -- никак. Вы правильно заметили, что его имеет смысл расширять только в ширину. Textarea -- и в высоту. Поэтому если вы хотите, что бы в вашем поле было видно все, что там написано и пользователь мог туда что-то написать, то используйте либо textarea, либо div contenteditable=true
    Ответ написан
    2 комментария
  • Как написать чат на php?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега SQL
    Седой и строгий
    Так же, как на любом другом языке. В минимальном виде надо два обработчика: Один будет выбирать из базы сообщения и отдавать их клиенту вместе с формой, а второй будет принимать из этой формы сообщение и записывать его в базу.
    Ответ написан
    Комментировать
  • Возможно ли скачать не только лендинг а сразу и бекенд сайта?

    vabka
    @vabka Куратор тега Веб-разработка
    Попробую сказать языком аналогий.
    Представь, что ты подписался на какой-то журнал (бумажный).

    Тогда "скачать фронт" - это всё равно что сделать скан журнала, который тебе пришёл по почте.
    А вот "скачать бэк" - это всё равно что получить копию издательства и полиграфии, вместе с людьми которые там работают.

    Гипотетически второе тоже возможно, особенно в каком-то ограниченном подмножестве.
    Если возвращаться к вопросу, то это возможно, если админ сайта оставил без пароля доступ к серверу, или если ты смог этот пароль подобрать, а весь бэк сайта - это голый php на одном серваке. Или если исходники полностью открыты и ты можешь посмотреть оригинал, например, на гитхабе.

    Но в общем случае это невозможно.
    Ответ написан
    Комментировать
  • Возможно ли скачать не только лендинг а сразу и бекенд сайта?

    Newto
    @Newto
    Ну конечно можно. Звоните владельцу сайта, говорите "алло, дайте мне доступ к вашему серверу". Он вам отвечает - "Да, конечно!" и высылает root ssh доступ. Заходите на сервак и всё скачиваете. А потом еще раз перезваниваете и просите к трубке админа, что бы он вам объяснил как это всё установить, что бы заработало. Profit! :)

    А если серьёзно, то есть в вебе два ключевых значения -- "frontend" и "backend". Вот "frontend" это всё то, к чему имеет доступ, непосредственно, ваш браузер. Это html код, картинки, скрипты(на разных языках) и css стили(про всякие xml и прочее говорить не буду даже). А всё то, что работает с базами данных, делает всякие хитрые операции на СЕРВЕРНОЙ стороне, то есть на БЭКЕ, всегда скрыто от браузера, т.е. от вашего непосредственного доступа. Браузер отображает лишь результат, который БЭК посылает на ФРОНТ, т.е. в ваш браузер с сервера. Поэтому никакими программами (если это не супер-мега-хакерская прилага из для взлома особо слабозащищенных и плохо написанных сайтов) вы бэкенд не скачаете.
    Ответ написан
    Комментировать
  • Как вызвать функци после setTimeout?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Как-нибудь так:
    const delay = seconds => new Promise(res => setTimeout(res, 1000 * seconds));
    
    const parse = async () => {
      // ...
    };
    
    const main = async () => {
      await delay(10); // подождать 10 секунд
      await parse();   // что-то там спарсить
      reloadPage();    // перезагрузить страницу
    };
    
    window.addEventListener('load', main);
    Ответ написан
    7 комментариев
  • Как найти цену регулярным выражением?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ~\d{1,3}?(?:[-.,\s]?\d{3})*~
    Ответ написан
    2 комментария
  • Как найти настоящего эксперта по ML (для консультаций), а не выпускника "курсов дата-саенсов" с бэкграундом копирайтера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Например среди разработчиков банковского скоринга. Только они не оказывают платных консультаций. Задайте себе вопрос, если бы вы получали огромные деньги за программирование, которые вы любите, стали бы вы в свободное время подрабатывать консультантом?
    Ответ написан
    3 комментария
  • В чём можно рисовать SVG иконки для приложения?

    LenovoId
    @LenovoId Куратор тега SVG
    svg, css,js
    в inkscape есть опция : сохранить простой svg и так же есть настройки этой опции
    а вы сохраняете как: inkscape svg

    вот пример кода с inkscape:

    <svg width="210mm" height="297mm" version="1.1" viewBox="0 0 210 297" xmlns="http://www.w3.org/2000/svg">
     <g fill-rule="evenodd">
      <path d="m73.327 135.91v42.409l20.315-4.4317v-36.105z" points="73.327381,178.31548 93.642178,173.88375 93.642178,137.77849 73.327381,135.90663 " fill="#353564"/>
      <path d="m73.327 178.32 34.774 14.139 20.858-8.9974-35.317-9.5736z" points="108.10119,192.45477 128.95966,183.45732 93.642178,173.88375 73.327381,178.31548 " fill="#afafde"/>
      <path d="m93.642 137.78 35.317-4.0436v49.722l-35.317-9.5736z" points="128.95966,133.73484 128.95966,183.45732 93.642178,173.88375 93.642178,137.77849 " fill="#e9e9ff"/>
      <path d="m73.327 135.91 34.774-5.9721 20.858 3.8003-35.317 4.0436z" points="108.10119,129.93452 128.95966,133.73484 93.642178,137.77849 73.327381,135.90663 " fill="#4d4d9f"/>
      <path d="m108.1 129.93v62.52l20.858-8.9974v-49.722z" points="108.10119,192.45477 128.95966,183.45732 128.95966,133.73484 108.10119,129.93452 " fill="#d7d7ff"/>
      <path d="m73.327 135.91 34.774-5.9721v62.52l-34.774-14.139z" points="108.10119,129.93452 108.10119,192.45477 73.327381,178.31548 73.327381,135.90663 " fill="#8686bf"/>
     </g>
    </svg>


    здесь я чуток поправил viewbox но делать надо это в редакторе



    а свои какие то приколы любой редактор svg оставляет
    Ответ написан
    Комментировать
  • Откликнулся на вакансию в которой набирали народ на стажировку, взяли без собеса и сразу кинули на реальный проект без наставника, что делать?

    @Yagher
    Стажировка же предполагает некое обучение, долгую адаптацию и наставника. Это нормально?

    Нет, это не нормально, но часто встречается.
    Отсутствие наставника в какой-то степени могут заменить ваши сокомандники, которых двое, если я правильно понял. Это не самый плохой вариант.

    Мне радоваться или задать несколько "неловких" вопросов тимлиду?

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

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Ну что сказать - разбираться и программировать....
    А то постоянно куча вопросов типа куда джуну устроиться - нигде без опыта не берут, что же делать, как жить...
    Ну вот - взяли... ))
    Ответ написан
    Комментировать
  • Откликнулся на вакансию в которой набирали народ на стажировку, взяли без собеса и сразу кинули на реальный проект без наставника, что делать?

    Adamos
    @Adamos
    или задать несколько "неловких" вопросов тимлиду?

    У тимлида в этой ситуации нет ни времени, ни желания обсуждать "неловкие" вопросы, типа - "не охренел ли кто" и "как джуну страшно, непонятно и надо ободрить".
    Собирай мошонку в кулак и грызи гранит. Дали ТЗ - до треска в мозгах думай, как их исполнить. Потом с тем, что получилось надумать, подойди к тимлиду посоветоваться. Нет, не с "я вообще не понимаю, как за это браться", а хотя бы тупо нагуглив что-то похожее, от которого сможешь оттолкнуться. Тогда, возможно, от этого разговора будет толк.
    Ответ написан
    Комментировать
  • Откликнулся на вакансию в которой набирали народ на стажировку, взяли без собеса и сразу кинули на реальный проект без наставника, что делать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Стажировка же предполагает некое обучение, долгую адаптацию и наставника.

    Стажировка это не курсы. Это возможность поработать с присмотром.
    Вот и работай.
    Если же ты на интервью и в резюме наврал, что уже умеешь что-то делать, то видимо сам попал.
    Ответ написан
    2 комментария
  • Откликнулся на вакансию в которой набирали народ на стажировку, взяли без собеса и сразу кинули на реальный проект без наставника, что делать?

    vfreelancer
    @vfreelancer
    php
    - ненормально
    - радуйтесь
    - наймите втихоря ментора и платите ему часть зарплаты за консультации
    Ответ написан
    Комментировать