• Как сделать рефакторинг кода?

    Xuxicheta
    @Xuxicheta
    инженер
    боле менее пристойный js пишется так
    const servPrice = {
      lin: 0,
      clean: 0,
    };
    
    /**
     * @param {HTMLInputElement[]} elements 
     * @param {HTMLInputElement} valueElement
     * @param {{lin: number; clean: number}} servPrice
     * @param {'lin'|'clean'} propName
     * @param {Function} done
     */
    function act(elements, valueElement, servPrice, propName, done) {
      if (elements.length === 0) {
        return;
      }
    
      elements.forEach((element) => {
        element.addEventListener('change', () => {
          switch (element.value) {
            case 'Yes':
              servPrice[propName] = parseInt(valueElement.getAttribute("data-price"), 10);
              break;
            case 'No':
              servPrice[propName] = 0;
              break;
            default:
          }
          done();
        });
      });
    }
    
    act(
      [...document.querySelectorAll('input[name="Linen_Service"]')],
      document.querySelector('input[name="linen_price"]'),
      servPrice,
      'lin',
      renewDatas,
    );
    
    act(
      [...document.querySelectorAll('input[name="Cleaning_Service"]')],
      document.querySelector('input[name="cleaning_price"]'),
      servPrice,
      'clean',
      renewDatas,
    );


    только конечно дать функции act более понятное название и описать что делает в комменте
    Плюс передачу более трех параметров в функцию лучше делать с помощью объекта и использовать деструктуризацию.
    Ответ написан
    Комментировать
  • Как сделать рефакторинг кода?

    Fzero0
    @Fzero0
    Вечный студент
    ну если так
    let linServPrice = getValue("Linen_Service","linen_price"),
    let cleanServPrice =getValue("Cleaning_Service","cleaning_price");
    
    function getValue(Service,price){
    if (document.querySelector(`input[name=${Service}]`)){
    ...
    }
    }
    Ответ написан
    Комментировать
  • Как разделить компоненет React.js?

    jeerjmin
    @jeerjmin
    {this.props.imageUrls.map(imageUrl=>
                <div key={imageUrl.toString()}
                className="col-md-4 image-item backgrounded"
                 onLoad={this.handleImageChange}
                onError={this.handleImageChange}
                 style ={ { backgroundImage: "url("+imageUrl+")" } }>             
                </div>
              )}


    Вы здесь перебираете массив ImageUrls и на каждый его елемент создаете div куда помещаете значение элемента.
    Соответственно

    <div key={imageUrl.toString()}
                className="col-md-4 image-item backgrounded"
                 onLoad={this.handleImageChange}
                onError={this.handleImageChange}
                 style ={ { backgroundImage: "url("+imageUrl+")" } }>


    Можно заменить на

    <Image key={imageUrl.toString()}
                 onLoad={this.handleImageChange}
                onError={this.handleImageChange}
                 style ={ { backgroundImage: "url("+imageUrl+")" } }>


    Создав класс Image
    Ответ написан
    Комментировать
  • Как превратить этот код в класс по стандарту ES6?

    AngReload
    @AngReload
    Кратко о себе
    Зачем класс, если нет ни полей ни методов? Тут только одна функция:
    function initBlock(name) {
      $("#" + name + "__btn").on("click", function() {
        var Ups = parseInt($("#" + name + "__val").val());
        var Val = parseInt($("#" + name + "__record").html());
        var Max = $("#" + name + "__record");
    
       if (Ups >= Val) {
          $(Max).html(Ups);
       }
      });
    }
    
    initBlock("one");
    initBlock("two");
    Ответ написан
    1 комментарий
  • Переключение адреса в атрибуте src при переключении slick слайдов?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Чтобы все корректно работало, вы должны не следить за кликом по блоку, а слушать событие slick slider, благо они у него есть kenwheeler.github.io/slick (в самом низу блок events). Там есть удобное событие afterChange, которое принимает 3 аргумента, это ссылка на слайдер, номер текущего слайда и номер следующего.
    $('.your-element').on('afterChange', function(event, slick, currentSlide, nextSlide){
      // тут производим смену картинки
    });
    Ответ написан
    2 комментария
  • Как сверстать сайт по изготовленному макету в формате jpg?

    solotony
    @solotony
    покоряю пик Балмера
    1) изучить основы html верстки
    2) нанять профессионала

    для того что бы сверстать сайт потребуются исходники картинок (в частности подложки)
    Ответ написан
    2 комментария