在脚本的其他部分使用var变量

时间:2013-07-25 20:28:25

标签: javascript ajax json

您好我使用ajax脚本获取var new_sample_data。在我的.php中,我有第二个javascript文件。在那里,我还需要变量new_sample_data来显示工具提示。

第一个javascript文件:

 $.ajax({ 
        type: "POST",                                    
        url: '../assets/includes/geodata1.php',
        data: {datum1: Date.today().add({days: -29}).toString('yyyy-MM-dd'), datum2: Date.today().toString('yyyy-MM-dd')},
        dataType: 'json',
        success: function(data)
        {
        var new_sample_data = data;

但我做的任何事情都没有从第二个javascript文件中的var new_sample_data获取值。永远0。 我尝试在if(params.showTooltip)中设置手动var new_sample_data = "de":"4",它适用于手动值。但是我找不到我的错误: - )

来自第二个java scrpit文件的代码:

if (params.showTooltip) {
          map.label.text(mapData.pathes[code].name + " - Öffnungen: " + sample_data[code]);
          jQuery(params.container).trigger(labelShowEvent, [map.label, code]);

2 个答案:

答案 0 :(得分:2)

听起来你有范围问题 您需要在任何函数之外定义var new_sample_data一次以使其成为全局(可由其他函数访问)。

var new_sample_data;开头标记后添加<script>,然后从现在的位置删除var一词。

在您的第二个文件中,我没有看到名为new_sample_data的变量,只有sample_data。这可能也是一个错字问题吗?

答案 1 :(得分:0)

要创建全局变量,您可以使用:

window.new_sample_data = data;

或在函数范围外用var初始化变量,例如在js文件的顶部。

虽然您的变量处于回调状态,但您可能也会遇到计时问题。如果要访问ajax请求返回的数据,则必须确保在服务器返回数据之前不要尝试读取它。将引用放在稍后的文件中是不够的,因为在完成所有初始同步操作之后,将同步调用设置变量的函数。