createInput () не работает должным образом при вызове из импортированной модели - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь вызвать createInput () из импортированного класса, однако изнутри класса я теряю доступ к input.style (), и элемент dom перестает отвечать на запросы (не могу щелкнуть по нему).

Я предполагаю, что это какая-то проблема с областью видимости, так как вызов createInput () на том же уровне, что и мой холст, работает без проблем.

Из моего компонента холста:

  s.setup = () => {
      ...
      search = new Search(s.width/2, s.height/3, 500, 1, world, s);
      ...
  }

  s.draw = () => {
      ...
      search.show(s)
      ...
  }

И моя модель поиска:

export class Search {
    ...
    show(p5) {
       p5.push();
       search = p5.createInput().addClass('search');
       search.position(pos.x, pos.y);
       search.style('width', this.width + 'px');
       search.style('height', this.height + 'px');
       p5.pop();
    }
}

И, чтобы уточнить,

    search = s.createInput().addClass('search');
    search.position(s.width/2-250, s.height/3);
    search.style('width', '500px');
    search.style('height', '40px');

отлично работает, вызывается непосредственно из компонента canvas.

...