我的代码有一些“奇怪”的问题。这主要是西班牙语,但我相信你会得到。为什么变量超出范围?
$('#favoritos').live('pagecreate',function(event){
var favoritos = false;
var fav_bus = '';
var fav_bici = '';
if (!isLocalStorageAvailable()) // Si no hay Local Storage para qué queremos entrar aqui
$.mobile.changePage('#errorFavoritos', { transition: "pop" });
else{
$.each(localStorage, function(index){
var itemKey = localStorage.key(index);
if (itemKey.indexOf('fav')){ // Si es un favorito
var splitted = itemKey.split('-');
var tipo = splitted[0];
var numero = splitted[2];
favs_locales[itemKey] = {
'numero' : numero,
'id' : itemKey
};
if (tipo == 'bus'){
favoritos = true;
fav_bus = '<div data-role="collapsible>' +
'<h3>Parada ' + numero+ '</h3>' +
'<ul data-role="listview" data-inset="true" id="'+itemKey+'">';
pedirTiempos(numero).pipe(formatearTiempos).done(function(html){
fav_bus += html + '</ul></div>';
});
}
}
});
// Ya tenemos los datos formateados
console.log(fav_bus);
if (fav_bus != ''){
$('#contentFavoritos').append(
'<h3 style="text-align: center;">Paradas de Bus</h3>' +
'<div data-role="collapsible-set">' +
fav_bus +
'</div>');
}
}
});
问题来自于这样的功能:
pedirTiempos(numero).pipe(formatearTiempos).done(function (html) {
fav_bus += html;
});
的变化(功能)后fav_bus
也没关系,但只是功能后console.log(fav_bus)
,它是错误的。这就像它在功能中没有改变。
我试过返回html
,但它输出的是[Object, object]
(作为字符串)。
任何提示?
编辑:
我试图将其存储到一个时间的DOM元素和它的好,但我不能够输出HTML(虽然它的存在)。
pedirTiempos(numero).pipe(formatearTiempos).done(function(html){
fav_bus += html + '</ul></div>';
$('#busTemp').html(fav_bus);
});
if ($('#busTemp').length > 0){
console.log($('#busTemp').html());
输出什么都没有!
我已经改变了我的代码封装成一个各一个,而不是为它打破了异步部分,并试图安慰。日志和它的工作,但仍然没有运气在这里。我必须执行一些不同类型的操作,然后根据我得到的结果输出不同的东西...更新代码btw –
当我循环访问localStorage时,索引真的很需要。我需要收集信息,然后,如果我有他们,展示他们,如果没有,展示另一件事。 –
然后,你应该能够保持代码原样(即,不要把它改成'for ... in')。 –