在上一个函数完成时执行javascript函数

时间:2013-10-10 05:09:49

标签: javascript

这一直困扰着我,如果有人能帮助我会很棒。

if(aaid) {
    var num_one = aaid;
    var radioBox = document.getElementsByName('used_dealer_before');
    for (i = 0; i < radioBox.length; i++) {
        if(num_one) {
            radioBox[i].checked = true; //this auto checks the box
        }
    }
    radioBox.onchange=function(){
        document.getElementById("previous_dealer").value=num_one; //this auto selects the     value from the dropdown
    }
}

如果存在变量(aaid),上面的函数会自动检查radiobox,一旦选中此框,另一个脚本文件(我无权访问;长篇故事)中的另一个函数会显示一个下拉菜单。 MY脚本的下一部分会自动选择下拉列表中的值。此脚本可以在本地进行测试。但是,当我将其上传到服务器时,它不再执行脚本的第二部分。我怀疑,因为该功能已经执行,当页面尚未完成呈现下拉值时。因此,在继续使用脚本之前,有人可以向我解释如何使用JavaScript等待下拉列表出现吗?

我应该延迟功能吗?我不能使用jQuery,我必须使用JavaScript。

1 个答案:

答案 0 :(得分:1)

听起来您正在寻找设置回调功能。这通常在使用XHR / AJAX请求外部服务以获取外部数据或代码时完成。例如,当您需要来自服务器的某些内容并希望在准备就绪时收到通知时,您可以使用查询字符串参数定义回调函数:

http://somedomain.com/resources?arg1=val1&callback=scriptready

为回调参数指定的值将对应于某些全局可访问的函数:

window['scriptready'] = function(val){ console.log("got response: "+val); }

如果您正在使用此资源提供了使用回调的选项,那么您就可以回复了。如果它没有,那么你需要一些更复杂的方法来根据你的盒子被检查或者其他什么来设置一个监听器。