Javascript 第二个ajax请求没有响应
我没有收到第二个ajax请求的响应。我试图在谷歌地图上显示一个谷歌信息窗口,当某个条件匹配时,该窗口只包含一个选项卡,否则我想显示两个选项卡。我以为我可以用另一个定制行为的标记函数轻松实现这一点,但我没有收到任何响应。在此方面的任何帮助都将不胜感激。提前谢谢Javascript 第二个ajax请求没有响应,javascript,jquery,google-maps,google-maps-api-3,google-fusion-tables,Javascript,Jquery,Google Maps,Google Maps Api 3,Google Fusion Tables,我没有收到第二个ajax请求的响应。我试图在谷歌地图上显示一个谷歌信息窗口,当某个条件匹配时,该窗口只包含一个选项卡,否则我想显示两个选项卡。我以为我可以用另一个定制行为的标记函数轻松实现这一点,但我没有收到任何响应。在此方面的任何帮助都将不胜感激。提前谢谢 // click event handler google.maps.event.addListener(marker, 'click', function () { var ecoli_array = [];
// click event handler
google.maps.event.addListener(marker, 'click', function () {
var ecoli_array = [];
var marker = this;
var str = "";
var beach_status; // beach_status flag
// load gif before ajax request completes
infoWindow.setContent('<img src="img/loading.gif" alt="loading data"/>');
infoWindow.open(map, marker);
// override beach data when a beach is closed
beach_status = this.getBeachStatus();
beach_status = beach_status.toLowerCase();
if (beach_status === 'closed') {
str = [
'<h1>' + this.beach_name + '</h1>',
'<h3>' + this.beach_region + '</h3>',
'<p>' + this.status_description + '</p>'
].join('');
infoWindow.setContent(str);
infoWindow.open(map, marker); // changed this to marker to resolve issue
} else {
// chained ajax invocations
if ( this.displayOnlyAlgaeResults === false ) {
// Standard Use case
$.when(this.getEcoliData(), this.getAlgaeData()).done(function (data1, data2) {
str += marker.getHeader() + marker.afterGetEcoliData(data1[0].rows);
str += marker.afterGetAlgaeData(data2[0].rows);
infoWindow.setContent(str);
infoWindow.open(map, marker); // changed this to marker to resolve issue
// render tabs UI
$(".tabs").tabs({ selected: 0 });
}); // end when call
}else{
// Algae Only Use Case
var d = this.getOnlyAlgaeData();
console.log(d);
$.when( this.getOnlyAlgaeData() ).done(function ( rsp ) {
//console.log(rsp);
str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData( rsp[0].rows );
//str += marker.afterGetOnlyAlgaeData(data2[0].rows);
infoWindow.setContent(str);
infoWindow.open(map, marker); // changed this to marker to resolve issue
// render tabs UI
$(".tabs").tabs({ selected: 0 });
}); // end when call
} // end inner if else
} // end outer if else
}); // End click event handler
getOnlyAlgaeData: function () { // begin getAlgaeData
var obj;
var queryURL = "https://www.googleapis.com/fusiontables/v1/query?sql=";
var queryTail = '&key=xxxxx&callback=?';
var whereClause = " WHERE 'Beach_ID' = " + this.beach_id;
var query = "SELECT * FROM xxxx "
+ whereClause + " ORDER BY 'Sample_Date' DESC";
var queryText = encodeURI(query);
// ecoli request
return $.ajax({
type: "GET",
url: queryURL + queryText + queryTail,
cache: false,
dataType: 'jsonp'
});
}, // end getAlgaeData method
// added afterGetOnlyAlgaeData
afterGetOnlyAlgaeData: function (data) {
var algae_rows_str = "";
algae_rows = data;
var algae_rows_str = [
'<div id="tab-1">',
'<h1>' + this.beach_name + '</h1>',
'<h3>' + this.beach_region + '</h3>',
'<table id="algae_table " class="data">',
'<tr>',
'<th>Sample Date</th>',
'<th class="centerText">Blue Green Algae Cells <br/>(cells/ mL) </th>',
'<th>Recreational Water Quality Objective <br/>(100,000 cells/mL)</th>',
'<th class="centerText">Algal Toxin Microcystin <br/> (μg/L)</th>',
'<th>Recreational Water Quality Objective <br/> (20 μg/L)</th>', // &mu instead of u
'</tr>'
].join('');
//console.log(algae_rows);
if (typeof algae_rows === 'undefined') {
algae_rows_str = [
'<div id="tab-1">',
'<h1>' + this.beach_name + '</h1>',
'<h3>' + this.beach_region + '</h3>',
'<p>This season, no algal blooms have been reported at this beach.</p>',
'</div>',
'</div>',
'</div>',
'</div>'
].join('');
} else {
for (var i = 0; i < algae_rows.length; i++) {
//console.log(rows[i]);
//algae_rows_str += '<tr><td>' + formatDate(algae_rows[i][2]) + '</td><td class="centerText">' + checkAlgaeToxinCount(algae_rows[i][3]) + '</td><td>' + checkAlgaeToxinForAdvisory(algae_rows[i][4]) + '</td><td class="centerText">' + checkAlgaeCount(algae_rows[i][5]) + '</td><td>' + checkBlueGreenAlgaeCellsForAdvisory(algae_rows[i][6]) + '</td></tr>';
algae_rows_str += '<tr><td>' + formatDate(algae_rows[i][2]) + '</td><td class="centerText">' + checkAlgaeCount(algae_rows[i][5]) + '</td><td>' + checkBlueGreenAlgaeCellsForAdvisory(algae_rows[i][6]) + '</td><td class="centerText">' + checkAlgaeToxinCount(algae_rows[i][3]) + '</td><td>' + checkAlgaeToxinForAdvisory(algae_rows[i][4]) + '</td></tr>';
}
algae_rows_str += '</table>'
algae_rows_str += '</div></div></div>';
//return algae_rows_str;
} //end if
return algae_rows_str;
}, // end afterGetOnlyAlgaeData
}); // ====================end marker
//单击事件处理程序
google.maps.event.addListener(标记,'click',函数(){
var ecoli_数组=[];
var标记=这个;
var str=“”;
var beach_status;//beach_状态标志
//在ajax请求完成之前加载gif
infoWindow.setContent(“”);
信息窗口。打开(地图、标记);
//海滩关闭时替代海滩数据
beach_status=this.getBeachStatus();
beach_status=beach_status.toLowerCase();
如果(海滩_状态==‘关闭’){
str=[
''这个,海滩名称+'',
''这个,海滩地区+'',
“”+this.status\u description+””
].加入(“”);
infoWindow.setContent(str);
infoWindow.open(map,marker);//将此更改为marker以解决问题
}否则{
//链式ajax调用
if(this.displayOnlyAllegaeResults===false){
//标准用例
$.when(this.getEcoliData(),this.getAlgaeData()).done(函数(data1,data2){
str+=marker.getHeader()+marker.afterGetEcoliData(数据1[0]。行);
str+=marker.afterGetAlgaeData(数据2[0]。行);
infoWindow.setContent(str);
infoWindow.open(map,marker);//将此更改为marker以解决问题
//渲染选项卡用户界面
$(“.tabs”).tabs({selected:0});
});//调用时结束
}否则{
//仅限藻类的用例
var d=this.getOnlyAlgaeData();
控制台日志(d);
$.when(this.getonlyagaedata()).done(函数(rsp){
//控制台日志(rsp);
str+=marker.getAlgaeHeader()+marker.afterGetOnlyAlgaeData(rsp[0]。行);
//str+=marker.afterGetOnlyAlgaeData(数据2[0]。行);
infoWindow.setContent(str);
infoWindow.open(map,marker);//将此更改为marker以解决问题
//渲染选项卡用户界面
$(“.tabs”).tabs({selected:0});
});//调用时结束
}//否则结束内部
}//如果没有,则结束外部
}); // 结束单击事件处理程序
getOnlyAlgaeData:函数(){//begin getAlgaeData
var-obj;
变量queryURL=”https://www.googleapis.com/fusiontables/v1/query?sql=";
var queryTail='&key=xxxxx&callback=?';
var whereClause=“WHERE'Beach\u ID'=”+this.Beach\u ID;
var query=“从xxxx中选择*
+其中第条+“按‘样品日期’说明订购”;
var queryText=encodeURI(查询);
//ecoli请求
返回$.ajax({
键入:“获取”,
url:queryURL+queryText+queryTail,
cache:false,
数据类型:“jsonp”
});
},//结束getAlgaeData方法
//添加了afterGetOnlyAlgaeData
afterGetOnlyAlgaeData:函数(数据){
var藻类_rows_str=“”;
行=数据;
var\u rows\u str=[
'',
''这个,海滩名称+'',
''这个,海滩地区+'',
'',
'',
“样本日期”,
“蓝绿藻细胞
(细胞/mL)”,
“休闲用水水质目标
(100000个单元/mL)”,
“藻毒素微囊藻毒素
(μg/L)”,
“休闲用水水质目标(20和956g/L)”,//&mu而非u
''
].加入(“”);
//控制台日志(行);
如果(行的类型==='undefined'){
藻类_行_str=[
'',
''这个,海滩名称+'',
''这个,海滩地区+'',
“本季,该海滩未出现藻类水华。”,
'',
'',
'',
''
].加入(“”);
}否则{
对于(变量i=0;i<0行。长度;i++){
//console.log(行[i]);
//藻类排[i][2])+“”+形成日期+“”+检查藻毒素计数(藻类排[i][3])+“”+检查藻毒素调查(藻类排[i][4])+“”+检查藻毒素计数(藻类排[i][5])+“”+检查蓝绿藻细胞放射性(藻类排[i][6])+“”;
藻类排[i][2])+“”+形成日期+“”+检查藻类排[i][5]+“”+检查蓝藻排[i][6]+“”+检查藻类排[i][3]+“”+检查藻类排[i][4]+“”+检查藻类排[i][4];
}
藻类_行_str+=''
藻类_行_str+='';
//返回“行”\u str;
}//如果结束,则结束
返回“行”\u str;
},//在GetOnlyalgaedata之后结束
}); // ====================结束标记
我基本上复制了两个相同的函数,给它们一个稍微不同的名称,并对每个函数进行了自定义,使其显示1个选项卡而不是2个,但没有得到响应
想法?谢谢你的帮助,结果很简单 我错误地引用了答案。即,我更改以下行:
str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData( rsp[0].rows );
str += marker.getAlgaeHeader() + marker.afterGetOnlyAlgaeData( rsp.rows );