Что заставляет функцию запускаться в консоли, но не тогда, когда она вызывается прослушивателем событий?

#javascript #console #html5-canvas

#javascript #консоль #html5-canvas

Вопрос:

РЕДАКТИРОВАТЬ Добавлена ссылка на изолированную среду с рабочим кодом. По какой-то причине кажется, что она работает в изолированной среде в том же браузере, в котором она не будет работать ?!?!

Демонстрация CodeSandbox

Я сталкиваюсь с этой странной проблемой вызова функции в консоли, и она работает так, как ожидалось. Однако, когда я вызываю функцию через прослушиватель событий, она разрывает элемент.

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

Почему эта функция должна работать в консоли, но не в документе?

введите описание изображения здесь

Комментарии:

1. Было бы очень полезно увидеть фрагмент кода. Вы можете загрузить его в codesandbox.

2. Я пробовал разные браузеры, режим инкогнито, разные компьютеры и, похоже, не могу изолировать проблему. Я изменил функцию, чтобы просто добавлять случайные планеты вместо входных данных. Так озадачен проблемой.

3. То, что вы добавили в CodeSandbox, работает в Chrome. Может ли быть так, что #color не является строкой, но она будет отображаться в linter ?

4. Кроме того, может ли быть так, что Add planet запускается дважды? Я заметил, что если я вызываю ее два раза внутри прослушивателя событий, возникает ошибка.

5. @radulle когда я проверял тип каждого значения, передаваемого функции, цвет показывает тип строки. Я тоже так подумал, что, возможно, значение средства выбора цвета не передается в виде строки.

Ответ №1:

Два вопроса, и тогда я мог бы вам помочь.

Номер 1: используете ли вы библиотеку, подобную p5.js или вы рисуете это прямо на холсте?

Номер 2: Не могли бы вы опубликовать код, поскольку может возникнуть ошибка?

Также, если вам нужно быстрое решение, попробуйте использовать другой браузер (хотя это может и не быть решением, стоит попробовать), например Firefox Developer Edition или просто обычный Firefox.

Надеюсь, это полезно!

Комментарии:

1. Никаких библиотек, только прямой холст и JavaScript. Разделил изолированную среду кода, но, похоже, она там работает. Теперь мне интересно, имеет ли это какое-то отношение к входным данным, которые я использую в реальном проекте.

2. Очень жаль, я думаю, что это просто ошибка с тем, что вы используете. Я не могу вам помочь. 🙁