我有一个函数在传递“This”的控件更新期间被调用,因此该函数知道正在更新的控件。我还在页面加载时调用该函数以获取初始值,但发送 document.getElementById() 似乎不起作用。我应该在这里传递什么?
例如:
<script type="text/javascript">
window.onload = function () {
alert("Got to window.onload");
materialSelectionChange(document.getElementById('SquaresDropDownList'));
};
</script>
在js文件中...
function materialSelectionChange(obj) {
alert("Got into function");
}
此外,它确实在更改时正确触发 js 函数
编辑
问题好像出在JS文档的加载时间上。该函数此时未成功调用,因为显然 JS 文件尚未完成加载。可能是因为 window.onload。如果我将函数移动到页面而不是 JS 文件中,它就会起作用。有没有一种方法可以添加延迟,以便我知道页面及其组件已完全加载?
最佳答案
您没有委托(delegate)窗口加载事件,您正在调用它,还有您在 id 周围缺少的引号:
window.onload = myFunction(document.getElementById(typeSelect));
尝试将其包裹起来:
window.onload = function() {
myFunction(document.getElementById('typeSelect')); //id in quotes
};
编辑
你必须注意js文件的导入,导入必须在调用函数之前首先进行:
<script src='your-script-file.js'></script>
<script type="text/javascript">
window.onload = function () {
materialSelectionChange(document.getElementById('SquaresDropDownList'));
};
</script>
关于javascript - 传递对对象 javascript 函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976096/