修改
为了便于阅读,我在这里重写了我的解释。
简而言之,远程.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有点新手。