使用嵌套函数苦苦挣扎。问题,我想从我的HTML中调用一个函数,但我所有的JavaScript都在里面等待DOM加载的函数。
如果我接受我想要调用DOM加载函数的函数,我就无法从DOM加载函数中访问变量。
答案 0 :(得分:1)
当你说你"从[你的] HTML"中调用一个函数时你的意思是:
<div onclick="yourFunction()">...</div>
......或类似的。
这是不使用onxyz
- 属性样式事件处理程序的众多原因之一:如果它们是全局变量,则只能调用自己的函数。
相反,如果您需要支持过时的Microsoft浏览器,请使用现代事件处理技术(例如addEventListener
(或attachEvent
)来处理处理程序;如果您这样做,my answer here会有交叉处理 - 你可以使用的浏览器功能)。如果你这样做,你可以使用你的代码范围内的任何函数进行连接,它不再需要是全局的。
简单示例:
(function() {
// Not global
function fooClick() {
console.log(".foo clicked");
}
// Hook it up
document.querySelector(".foo").addEventListener("click", fooClick);
})();
&#13;
<div class="foo">Click me</div>
&#13;