我有这个脚本可以 ping 4 台服务器。它包含一个发送 4 个请求并设置回调的循环。
var servers = new Array(
{
css: 'vanilla',
ip: 'play.example.com',
port: '25565'
},
{
css: 'uhc',
ip: 'uhc.example.com',
port: '25565'
},
{
css: 'ftb',
ip: 'ftb.example.com',
port: '25565'
},
{
css: 'ts',
ip: 'ts.example.com',
port: '8765'
}
);
for(var i = 0; i < servers.length; i++) {
$.get('status.php', {
ip: servers[i]['ip'],
port: servers[i]['port']
}, function(data) {
var server = servers[i];
data = $.parseJSON(data);
if(data.status == 'online') {
$('.'+server.css+' .status').addClass('online').text('Online');
} else {
$('.'+server.css+' .status').addClass('offline').text('Offline');
$('.'+server.css+' .text-field').attr('disabled', true);
}
});
我的问题是,当回调被触发时,server
变量已经发生了变化,因此i
from 循环也发生了变化。如何将索引解析为回调函数?