ES6 вызывает метод в другом классе, используя модули - PullRequest
0 голосов
/ 21 февраля 2019

Я знаю, что есть много вопросов, подобных этому, но я искал часы и не могу найти ответы.У меня есть этот метод, который принимает параметр, который должен быть идентификатором двух выборок.Используя этот параметр, я хочу определить, какой выбор используется, и выполнить оператор if, но безрезультатно.Когда я запускаю его, он не показывает ошибок в консоли в Chrome и ничего не делает.Может кто-нибудь пролить свет на это, это метод в одном классе экспорта:

static styleCircle(select) {
    if(this.select === ELEMENTS.ELEMENT_COLOR_SELECT) {
      var getColor = ELEMENTS.ELEMENT_COLOR_SELECT;
      var colorValue = getColor.options[getColor.selectedIndex].value;
      ELEMENTS.ELEMENT_STYLE_CIRCLE.style.backgroundColor = colorValue;
    } else if(select == ELEMENTS.ELEMENT_BORDER_SELECT) {
      var getRadius = ELEMENTS.ELEMENT_BORDER_SELECT;
      var radiusValue = getRadius.options[getRadius.selectedIndex].value;
      ELEMENTS.ELEMENT_STYLE_CIRCLE.style.borderRadius = radiusValue;
    }
  }

Это он вызывается в другом классе, на двух элементах выбора, и класс импортируется в верхней частиfile:

ELEMENTS.ELEMENT_COLOR_SELECT.onchange = Script.styleCircle(this);
ELEMENTS.ELEMENT_BORDER_SELECT.onchange = Script.styleCircle(this);

ELEMENTS - это файл с константами, которые просто используются для получения идентификаторов из файла HTML.Я использовал другие методы, подобные этому, с событиями onclick, но ни у одного из них не было параметров, и теперь я застрял здесь.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Вы не хотите вызывать функции прямо сейчас, но вместо этого вы, вероятно, хотите передать функции.Благодаря этому вы можете получить доступ к this и передать его styleCircle:

ELEMENTS.ELEMENT_COLOR_SELECT.onchange = function() {
   Script.styleCircle(this);
};

ELEMENTS.ELEMENT_BORDER_SELECT.onchange =  function() {
  Script.styleCircle(this);
};

Кроме того, this.select, вероятно, вызывает у вас проблемы, так как window.select означает undefined.

0 голосов
/ 21 февраля 2019

Первый шаг - попытаться отладить и убедиться, что select эквивалентен любой из этих констант.Убедитесь, что у вас есть полное покрытие ветвления в вашей отладке.Это означало бы начать с добавления оператора else к этому оператору if/else if - возможно, ваш выбор не равен ни одной из констант, и поэтому ни одна ветвь не выполняется.

...