传递对象javascript函数的引用

时间:2015-01-16 01:47:52

标签: javascript html

我有一个在控件更新期间调用的函数,其中传递了'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文件中,它就可以工作。有没有办法我可以添加延迟,所以我知道页面,它的组件是完全加载的?

3 个答案:

答案 0 :(得分:4)

您没有委托窗口加载事件,您正在调用它,也是您在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>

答案 1 :(得分:0)

<select id="typeSelect" onchange="myFunction(this)">

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

答案 2 :(得分:0)

问题似乎是JS文档的加载时间。此时函数未成功调用,因为显然JS文件尚未完成加载。如果我将函数移动到页面而不是JS文件中,它就可以工作。有没有办法我可以添加延迟,所以我知道页面,它的组件是完全加载的?