将文档对象传递给函数
Pass document object to function
我有一个按照模块模式编写的javascript代码:
var controller = function () {
return {
init: function() {
// settings and initialization
}
makeUIactions: function() {
//set UI actions, for example callback function of a button:
document.getElementById("ShuffleButton").addEventListener("click", Shuffle);
function Shuffle(){};
}
}
}
如何通过文档对象传递UI操作?
P/S:我收到以下错误:
Cannot read property 'addEventListener' of null
是因为我无法从 makeUI 操作访问文档吗?
.HTML:
<script>
controller.init();
controller.makeUIactions();
</script>
<div>
<input type="button" id="ShuffleButton" style="margin-top:20px" value="Shuffle" data-inline="true">
<input type="button" id="SubmitButton" style="margin-top:20px" value="Submit" data-inline="true">
</div>
您的代码在加载 DOM 之前运行,因此document.getElementById("ShuffleButton")
找不到 DOM 元素,因此它返回 null
. 当您尝试null.addEventListener()
时,它会抛出您看到的错误。
您可以通过移动以下内容来修复它:
<script>
controller.init();
controller.makeUIactions();
</script>
位于 </body>
标记之前,以便在脚本运行之前 DOM 元素就位。 请参阅这个答案,纯JavaScript等同于jQuery的$.ready()如何在页面/dom准备好时调用函数以获取更多详细信息。
相关文章:
- 将文档实体传递给JavaScript函数
- 使用window[variablename]()调用函数;在文档中.准备
- 函数不't在jquery文档就绪时执行
- 如何从 html 文档中调用 yahoo weather api javascript 函数
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- 使用 JQuery 修改函数写入文档的数据
- 在 $( 文档 ).ready 函数中使用字符串名称调用 javascript 函数
- 将文档对象传递给函数
- 这个文档语法在MDN中对JavaScript函数意味着什么
- 为什么不是'我的函数未按预期在文档加载时运行
- 挂钩文档.使用函数原型创建元素
- 如何在文档准备函数中调用变量的click函数
- window.opener调用函数给了我一个文档.getElementById(..)为null
- JavaScript:从子html文档调用函数
- 为什么要重置文档getter函数
- Javascript:如何在函数运行完成之前对文档进行更改
- NodeJS的MongoDB函数文档
- 如何用JSDoc编写函数文档
- 函数文档和语法- ECMA262
- Javascript函数文档.createElement(tagName[, options])没有按预期工作