Tengo una etiqueta <abbr>
con clase "timeago" en mi HTML. Cuando establezco el valor en la carga de la página, entonces llame al jQuery("abbr.timeago").timeago();
en la función de documento listo que funciona.uso de jQuery timeago
Mi pregunta es, ¿qué sucede si cambio dinámicamente el título de abbr.timeago de alguna función de JavaScript? ¿Cómo puedo hacer que el complemento timeago haga su magia en el elemento abrr.timeago actualizado?
¿A qué función debo llamar? ¿Debo eliminar jQuery("abbr.timeago").timeago();
de la función lista para documentos o dejarla? gracias
Editar pregunta:
ejemplo @squiddy funciona, actualiza el tiempo de una sola vez y que sólo permanece así sin cambios. Por ejemplo, si pongo timeago a la hora actual ... ¿entonces simplemente permanece como que no cambia?
BOUNTY ACTUALIZACIÓN:
Haga caso omiso de la pregunta anterior. En mi sitio web hay un enlace sobre su clic. Se invoca la función getJSON, que obtiene cierta información del servidor en una tabla.
Cada fila representa los comentarios del servidor. Aquí está mi getJSON pseudo código:
$.getJSON("feedback/" + feedbackId, function(data) {
var column ... declared variable in which column selector
.... some logic that populates table(irrelevant)
//Store last checked time in title
column.attr("title", iso8601(new Date()));
//invoke timeago on this title
column.html(jQuery.timeago(iso8601(new Date())));
....iso8601 is date format function
});
Así que este getJSON se invoca para cada respuesta que reciba desde el servidor (n veces). Y cuando json completa la columna correspondiente en la tabla, se completa con la última hora actualizada.
Pero parece que timeago no lee el valor del título modificado, no reconoce el DOM actualizado. Puse console.log (element.attr ("title")) para cada comentario del servidor con fines de depuración, solo para ver si establezco el atributo del título a la hora actual, y lo hace de hecho, pero el timeago recoge el título cargado inicialmente valor.
¿Qué debo hacer También probé esta versión:
$.getJSON("feedback/" + feedbackId, function(data) {
var column ... declared variable in which column selector
.... some logic that populates table(irrelevant)
//Store last checked time in title
column.attr("title", iso8601(new Date()));
//invoke timeago on this title
$(column).livequery(function() {
$(this).timeago(iso8601(new Date()));
console.log($(this).attr("title"));
});
});
He pasado unas horas tratando varios solución posible .. como una función llamada cada n segundos, para llamar a la función timeago pero siempre el mismo resultados
esto no funciona – London
@London Sí, tenías razón, pero lo corrigí. Btw timago() funciona con cualquier cadena de tiempo en el título, que el objeto Date() puede analizar, como el 4 de febrero de 2011 16:16:00 – aorcsik