代码之家  ›  专栏  ›  技术社区  ›  Amine

将模块中的函数绑定到onclick事件

  •  0
  • Amine  · 技术社区  · 5 年前

    我有一个包含以下脚本的html文件:

    <script type="module" src="js/app.js"></script>
    

    我把我的应用程序和其他逻辑放在一起。在这里面 app.js test() ;

    function test() {
        console.log("aaa");
    }
    

    此函数在 onclick

    buildSideBar(technologies) {
        if(technologies.length > 0) {
            let spans = ``;
            const loader = document.getElementById('loader');
            const sidebar = document.getElementById('sidebar');
            for(const technology of technologies) {
                spans += `<span onclick="test()">${technology}</span>`;
            }
            loader.style.height = '0';
            loader.style.visibility = 'hidden';
            sidebar.innerHTML += spans;
            sidebar.classList.remove('hidden');
        }
    }
    

    跨距是按预期添加的,但是,当我按下它们时,会出现错误:

    未捕获引用错误:未定义测试

    我做错什么了?

    0 回复  |  直到 5 年前
        1
  •  0
  •   Amine    5 年前

    这个 test() 函数在模块外部不可见,解决方法是将它添加到 window

    window.test= test;
    

    正如@VLAZ所提到的,还有一种解决方案可以将跨距动态绑定到onclick。