来自jquery .load()页面的全局变量无法被远程javascript文件函数识别

时间:2011-12-18 08:43:03

标签: javascript jquery ajax json

修改

为了便于阅读,我在这里重写了我的解释。

简而言之,远程.js文件中的函数需要一个全局变量。远程.js文件中的前一个函数将该var带入带有jQuery .load()的页面,但是在.load()将其带入页面后,需要变量的函数找不到它。以下功能按时间顺序排列。

远程.js文件在.load()页面之前加载到主页面中。

以下是我的代码:

功能将远程页面加载到主页面(在远程.js文件中)

$(".activity_choice").live('click',function(e) {
    var selection = $(this).attr('id');
    var address = my_url + "pg/course/activity_form?style=" + selection + "&activity=" + activity;
    $("#stage_choice_holder").load(address,function(){
    });
});

全球变量加载页面

var controls_setup = $.parseJSON('<?php echo json_encode($setup);?>');

使用此变量保存物品的最终功能(在远程.js文件中)

$("#save_controls").live('click',function(e) {
    datastr = "&activity=" + activity;
    $.each(controls_setup, function (i,elem) {
        datastr += "&"+elem+"=" + $("#"+elem).attr('value');
    });
    $.ajax({
        type: "POST",
        url: my_url + "action/course/saveactivitycontrols",
        data: datastr,
        dataType: "json",
        success: function(msg){
        }
    }); 
});

全局变量controls_setup未被识别(我认为),因为当单击$(".activity_choice").live('click',function(e) {时,主页面已经使用远程.js文件进行渲染。这个函数带来了全局变量,但我猜这个DOM并没有把它拿起来。所以需要这个var的最终函数找不到它。

希望这更清楚。 任何帮助非常感谢。我对jQuery有点新手。

0 个答案:

没有答案