¿Por qué funciona lo siguiente correctamente en Firefox pero NO en Chrome? Si cambio el valor de retorno en el .each loop a 'verdadero', funciona en Chrome y no en Firefox. ¿Lo que da?
(Cuando no funciona, sólo se devuelve en segundos versus el día correcto, hora, etc.)
function time_remaining(expire_time)
{
var now = new Date().getTime()/1000,
time_left = expire_time - now,
time_left_str = '0 seconds';
if (time_left < 1) {
return time_left_str;
}
var a = {};
a[ 12 * 30 * 24 * 60 * 60 ] = 'year',
a[ 30 * 24 * 60 * 60 ] = 'month',
a[ 24 * 60 * 60 ] = 'day',
a[ 60 * 60 ] = 'hour',
a[ 60 ] = 'minute',
a[ 1 ] = 'second';
$.each(a, function (secs, str) {
var d = time_left/secs;
if (d >= 1) {
var r = Math.round(d);
time_left_str = r + ' ' + str + ((r > 1) ? 's' : '');
return false;
}
});
return time_left_str;
}
De acuerdo con los documentos 'Podemos romper el bucle $ .each() en una iteración particular haciendo que la función de devolución de llamada devuelva falso. La devolución de no falso es lo mismo que una instrucción continuar en un ciclo for; saltará de inmediato a la siguiente iteración. – MrOBrian
Intente utilizar return (fasle) como devolución de llamada a su función. Esto debería resolver su problema, ya que actuará como un descanso; –
He intentado tanto 'return false' como 'return (false)'. Esto SI FUNCIONA correctamente en Firefox. Sin embargo, NO funciona correctamente en Chrome. Chrome solo funciona correctamente cuando uso 'return true' ... ¿no estoy seguro? –