Неиспользуемая функция во внешнем файле javascript при ссылке в файле HTML - PullRequest
0 голосов
/ 26 мая 2020

Мой код

Я пытаюсь создать инкрементную игру на веб-сайте и хочу сохранить данные игрока в файле player. js.
Более простая версия этого файла выглядит так ...

player. js

let player = {
    points: 0,
    clickPower: 1,
}

export default player


Одна из функций в моем loop.js, который ссылается на файл player.js для получения и установки значений данных игрока, - это когда игрок нажимает кнопку и набирает очки в зависимости от силы нажатия игрока

l oop. js

import player from "./player";

function pointClick(){
    player.points += player.clickPower;
    document.getElementById('points').innerHTML = player.points + " POINTS";
};


Я ссылаюсь на функцию pointClick() в файле HTML, который выглядит как ...

index. html

<!DOCTYPE html>
<html>
  <head>
    <title>Citioweb de Marty</title>
    <script src="js/player.js"></script>
    <script src="js/loop.js"></script>
  </head>
  <body>
    <link rel="stylesheet" href="css/style.css">
    <div class = "container">
      <div class = "tracker">
        <label id = "points"> 0 POINTS  </label>
        <label id = "machines"> 0 MACHINES  </label>
        <label id = "pointPresses"> 0 POINT PRESSES  </label>
        <br><br>
      </div>
      <div>
        <button onclick="pointClick()"> CLICK ME </button>
        <br><br>
        <button onclick="buyMachine()"> BUY POINT MACHINE: <span id="machineCost"> 20 POINTS </span></button>
        <br><br>
        <button onclick="buyPointPress()"> BUY POINT PRESS: <span id="pointPressCost"> 100 POINTS </span></button>
        <br><br>
      </div>
      <label id="pps"> 0  POINTS PER SECOND </label>
    </div>
  </body>
</html>


Проблема

Я использую PyCharm IDE и нахожу использование функции pointClick() в index.html он указывает на файл loop.js, как и ожидалось.

Однако, когда я нахожу использование функции pointClick() в loop.js, он не указывает обратно на index.html, вместо этого он говорит: «Неиспользуемая функция pointClick»

Если я запускаю index. html в отладке и нажимаю кнопку, которая вызывает pointClick(), я получаю

Uncaught ReferenceError: pointClick is not defined


Если я удалю оператор импорта в loop.js

* 1 053 *


Тогда моя функция pointClick() в loop.js говорит, что на нее есть ссылка в index.html, но в то же время она говорит, что player.points отсутствует оператор импорта.

Я довольно давно пытался найти проблему, но в конце концов сдался и решил сделать этот пост. Я новичок в javascript и HTML, поэтому прошу прощения, если это простое исправление.

1 Ответ

0 голосов
/ 26 мая 2020

Скрипт импортируется как модуль, а это означает, что вам также необходимо предоставить соответствующую функцию объекту окна, иначе она будет недоступна.

Попробуйте добавить это в l oop. js файл:

window.pointClick = pointClick;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...