JS模块-ReferenceError:未定义<function>

时间:2018-11-12 18:43:01

标签: javascript html material-design referenceerror

我正在尝试使用“模块”类型从外部.js文件中导入js函数,但始终收到错误消息“ ReferenceError:未定义polygonClick”。

这是我的代码:

HTML:

<!DOCTYPE html>
<html>
  <head>
    ...
    <script src="js/map.js" type="module"></script>
  </head>
  <body>
    ...
    <script>
      function initMap() {
        ...
        $.getJSON( "./DI.json", function( coords ) {
            var building = new google.maps.Polygon({...});
            building.setMap(map);

            building.addListener('click', (event) => polygonClick(event));
        });
        ...
      }
    </script>
  </body>
</html>

JS:

import {MDCDrawer} from './@material/drawer';

export default { polygonClick };

const drawer = MDCDrawer.attachTo(document.querySelector('.mdc-drawer'));

function polygonClick(event) {
    console.log(event); 
}

有人可以告诉我我在做什么错吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为模块内的js代码不是全局的,所以函数initMap()并不是全局的。 Simpy,通过以下方式使其具有全局性:

window.polygonClick = function(event){
    //you function code
}

窗口。将使变量或函数在上下文中变为全局。