@Returb0

Как превратить этот код в класс по стандарту ES6?

Здравствуйте, прошу помочь создать класс по стандарту ES6.

Сейчас для блока html c идентификатором "one" работает соответствующий скрипт.
Но для такого же блока html с идентификатором "two", в js-файле придется копировать код, и заменить в нем один только идентификатор "one" на "two". В остальном код js идентичен

По этому цель создать js-класс (конструктор) и в дальнейшем создавать экземпляры этого класса заменяя только html идентификаторы.

Но класс js нужно написать по стандарту ES6

HTML:
<div id="one">
  <span id="one__record">20</span>
  <input id="one__val" type="text">
  <input id="one__btn" type="button">
<div>


  
<!-- еще один однотипный блок, только с другим
  идентификатором -->
<div id="two">
  <span id="two__record">20</span>
  <input id="two__val" type="text">
  <input id="two__btn" type="button">
<div>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>


JAVASCRIPT:
$("#one__btn").on("click", function(){
    var Ups = parseInt($("#one__val").val());
    var Val = parseInt($("#one__record").html());
    var Max = $("#one__record");

   if(Ups >= Val){
        $(Max).html(Ups);
   }
})

/*Копия кода выше только для блока "two". Естественно копировать так код этого плохой вариант*/

$("#two__btn").on("click", function(){
    var Ups = parseInt($("#two__val").val());
    var Val = parseInt($("#two__record").html());
    var Max = $("#two__record");

   if(Ups >= Val){
        $(Max).html(Ups);
   }
})
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
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");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 18:39
30000 руб./за проект
25 нояб. 2024, в 18:35
30000 руб./за проект
25 нояб. 2024, в 18:33
10000 руб./за проект