我有一个包含3个部分的页面。在左侧是一个静态菜单
e.g。
<a href="#" class="actionLink" id="newFile"><li>New File</li></a>
这可以开始新的行动,例如
$('.actionLink').click(function() {
var folderID; // trying set ID here
var fileName = $(this).attr('id');
$("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
})
所以,这会加载/ajax/actions/newFile.php
中间是使用jquery .load()
加载的页面。在中间的页面中是一系列具有ID的文件夹。点击后,这些文件夹显示其内容显示在页面右侧。
e.g。
<span id="12" class="folder active99">Music</span>
$('.folder').click(function() {
var folderID = $(this).attr('id');
$("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
})
单击时显示右侧的内容。注意变量folderID。一切正常。
我想要发生的是当在中间选择一个文件夹时,它会更改左侧菜单上的folderID
变量,因此当选择一个新动作时,它对应于它应该的文件夹。 / p>
我已尝试将变量设置在各处,即在所有部分var folderID;
中,但无论我尝试什么,都不会携带变量。
这可能或有更好的方法吗?我错了吗?
总结:当我点击中间的文件夹时,我需要它将变量添加到左侧菜单。
更新
这是我目前使用的代码:
$(document).ready(function(){
var folderID = '';
$('.actionLink').click(function() {
var fileName = $(this).attr('id');
$("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
});
$('.folder').click(function() {
$('.folder').removeClass('active99'); // remove from all other <SPAN>s
$(this).addClass('active99'); // add onto current
var folderID = $(this).attr('id');
$("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
});
});
我现在稍微改变了一些事情,所以实际上包含了中间部分而不是使用.load()
但是仍然没有工作
答案 0 :(得分:1)
您正在处理变量范围问题,您必须将folderID变量声明在外部(在更大的范围内),以便它可用于这两个操作:
$(document).ready(function(){
var folderID = '';
$('.actionLink').click(function() {
var fileName = $(this).attr('id');
$("#myAction").load('/ajax/actions/' + fileName + '.php?folder_id=' + folderID);
});
$('.folder').click(function() {
folderID = $(this).attr('id');
$("#myAction").load('/ajax/actions/links.php?folder_id=' + folderID);
});
});