首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递对对象javascript函数的引用

问传递对对象javascript函数的引用
EN

Stack Overflow用户
提问于 2015-01-16 01:47:51
回答 3查看 53关注 0票数 1

我有一个函数在控件更新过程中调用,其中传递了“This”,因此函数知道正在更新什么控件。我还在页面加载时调用函数来获取初始值,但是发送document.getElementById()似乎不起作用。我应该从这里经过什么?

例如:

代码语言:javascript
复制
    <script type="text/javascript">

    window.onload = function () {
        alert("Got to window.onload");
        materialSelectionChange(document.getElementById('SquaresDropDownList'));

    };


</script>

在js文件里..。

代码语言:javascript
复制
function materialSelectionChange(obj) {

alert("Got into function");
}

此外,它还可以正确地启动js函数的js函数。

编辑

问题似乎是JS文档的加载时间。由于JS文件显然还没有完成加载,所以函数当时没有被成功地调用。很可能是因为window.onload。如果我将函数移到页面中而不是JS文件中,它就能工作。有什么方法可以增加延迟,让我知道页面和它的组件是完全加载的吗?

EN

回答 3

Stack Overflow用户

发布于 2015-01-16 01:52:37

您不是在为window load事件委派,而是在调用它,以及您在id周围缺少的引号:

代码语言:javascript
复制
window.onload = myFunction(document.getElementById(typeSelect));

试着把它包裹起来:

代码语言:javascript
复制
window.onload = function() {
     myFunction(document.getElementById('typeSelect')); //id in quotes
};

编辑

您必须处理js文件导入,在调用以下函数之前必须先导入:

代码语言:javascript
复制
<script src='your-script-file.js'></script>

<script type="text/javascript">
    window.onload = function () {
        materialSelectionChange(document.getElementById('SquaresDropDownList'));
    };
</script>
票数 4
EN

Stack Overflow用户

发布于 2015-01-16 02:02:33

代码语言:javascript
复制
<select id="typeSelect" onchange="myFunction(this)">

window.onload = function(){
  myFunction.bind(document.getElementById('typeSelect'));
}
票数 0
EN

Stack Overflow用户

发布于 2015-01-16 03:27:08

问题似乎是JS文档的加载时间。由于JS文件显然还没有完成加载,所以函数当时没有被成功地调用。如果我将函数移到页面中而不是JS文件中,它就能工作。有什么方法可以增加延迟,让我知道页面和它的组件是完全加载的吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27976096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档