我有一个处理这些循环函数的点击处理程序
$('.container').on('click', '.folder', function(e){
var ClickedJobId = $(this).closest("div").prop('id');
JobId.value = ClickedJobId;
alert(ClickedJobId);
console.log(ClickedJobId);
$('.gallery').fadeOut('fast',function() {
$('.applications').fadeIn('fast');
})
})
此firebase身份验证状态更改确定以下两个函数的子路径。
firebase.auth().onAuthStateChanged((user) => {
if (user) {
database = firebase.database();
var BusinessesId = firebase.auth().currentUser.uid;
var selectedJob = JobId.value ;
var jobref = database.ref('/Jobs/');
jobref.on('value', JobData, errData);
var appref = database.ref('/Jobs/' + ClickedJobId + '/Applications/')
appref.on('value', ApplicationData, errData);
}
})
函数JobData从firebase DB / Jobs /
中提取所有条目 function JobData(data) {
var container = document.getElementById('Jobs');
data.forEach(function(JobSnap) { // loop over all jobs
var key = JobSnap.key;
var Jobs = JobSnap.val();
var jobCard = `
<div class="thumbnail" id="${key}">
<span class="folder"><span class="file"></span></span>
<div class="title" id="Jobs">${Jobs.JobTitle}</div>
</div>
`;
container.innerHTML += jobCard;
})
}
和函数ApplicationData应该来自&#39; / Jobs /&#39; + ClickedJobId +&#39; / Applications /&#39;
function ApplicationData(data) {
........
....
}
我遇到的问题是我无法找到在另一个函数中使用ClickedJobId的方法,尤其是ApplicationData。 ClickedJobId是在click处理程序中定义的,每当我在applicationData中引用它时都是未定义的,我如何在ApplicationData中使用ClickedJobId?
答案 0 :(得分:1)
var ClickedJobId;
$('.container').on('click', '.folder', function(e){
ClickedJobId = $(this).closest("div").prop('id');
JobId.value = ClickedJobId;
alert(ClickedJobId);
console.log(ClickedJobId);
$('.gallery').fadeOut('fast',function() {
$('.applications').fadeIn('fast');
})
})
“定义”变量和“声明”变量之间存在差异。我建议您参加一些javascript教程,这是您将要学习的第一件事。术语是“可变范围”