繁体   English   中英

Dojo脚本中的Javascript函数无需调用即可运行

[英]Javascript functions within Dojo script run without being called

我对此感到很愚蠢,但是我在主要的Dojo require脚本中有一个命名函数,该脚本的目的是在被click事件调用时运行。 但是,该函数在加载页面时运行,而不在click事件上运行。

<script>
require(["esri/map", "dojo/domReady!"], function(Map){
    var map = new Map("map");
    testNode = document.getElementById("testNode");
    testNode.onclick = test();

    function test() {
        alert("test");
    }
}
</script>

<body>
    <div id="testNode">Click Here To Test</div>
    <div id="map></div>
</body>

页面加载后,将立即弹出“测试”警报,并且单击事件没有任何反应。

当您键入

testNode.onclick = test();

您正在调用函数test并将函数的返回值传递给testNode.onclick 您应该将功能test的引用分配给testNode.onclick

testNode.onclick = test;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM