• Как правильно реализовать выделение checkbox при клике на строку таблицы tr?

    miraage
    @miraage
    Старый прогер
    jsfiddle.net/6bdt4149/1

    // EDIT: в комментариях попросили уточнить, что происходит.

    При клике на TR вызывается функция clickTr. Само собой, что это событие вызовется при клике на дочерние элементы (конечно, есть всякие bubbling/useCapture, подробнее - https://developer.mozilla.org/ru/docs/Web/API/Even...).

    У всех обработчиков событий первым параметром передается объект Event. Ключ target содержит элемент, который вызвал событие.

    Мы проходим по всем input в TR. Логично, что чекбокс работает прекрасно сам по себе, и если он является Event.target, то для него наш обработчик выполнять не надо.

    Надеюсь, объяснил популярно.

    var tr = document.getElementsByTagName("tr"),
        i = tr.length;
    
    while (i--) {
        tr[i].onclick = clickTr;
    }
    
    function clickTr(event) {
        var inputs = this.getElementsByTagName('input');
        for (var x = 0; x < inputs.length; x++) {
            if (inputs[x] !== event.target && inputs[x].type == 'checkbox') {
                inputs[x].checked = !(inputs[x].checked);
            }
        }
    }
    Ответ написан
    6 комментариев
  • Альтернатива !important в лице .class.class.class. Что скажете?

    27cm
    @27cm
    TODO: Написать статус
    Нет, не стоит.

    1. Для других разработчиков это будет не так очевидно, как !important. Могут принять за опечатку и удалить дубликат класса.
    2. Оптимизаторы CSS, наверняка будут превращать .class.class.class в .class
    Ответ написан
    2 комментария
  • Как со всем своим багажом знаний свалить в фриланс?

    solomakin
    @solomakin
    Head of online marketing
    В спросе не CMS, а качественные услуги. 90% заказчиков нет дела до того, как все будет сделано, лишь бы добиться цели.
    Думайте не в ключе "я не хочу вставать на работу", это ни к чему хорошему вас не приведет. Думайте о приятном, о том, чего хотите достичь, планируйте день.
    Вот полезное видео.
    Дело не во фрилансе или работе, на которй вы работете, а в вашем настроении и ожиданиях от жизни.
    Даже работа с 9 до 9 может приносить радость, если вы понимаете, для чего это делаете и куда движетесь.
    Работодатели смотрят на вас, на вашу речь, вы убеждаете их и продаете себя, свое время и свои умения. Портфолио не так важно. Гораздо важнее тот образ, который вы создаете, общаясь с заказчиком и работодателем.
    Если общаясь с вами они поймут, что вы эксперт, вам отдадут любой проект. Те, кто заказывает, имеют цель и выбирают в исполнители тех, у кого цели похожи на их собственные.
    Поэтому подумайте как следует, чего вы на самом деле хотите. Тогда на вашем пути появятся правильные люди. Правильное общение даст новые привычки и принесет новые проекты. Разберитесь в себе.
    Удачи вам и успехов.
    Ответ написан
    1 комментарий
  • Какие актуальные технологии фронтенда?

    @crazyjs
    Vanilla JS всегда актуален
    Ответ написан
    Комментировать