У меня есть тег <abbr>
с классом "timeago" в моем HTML.Когда я устанавливаю это значение при загрузке страницы, затем вызываю jQuery("abbr.timeago").timeago();
для функции готовности документа, она работает.
Мой вопрос такой: что если я динамически изменю заголовок abbr.timeago из какой-либо функции javascript, как я могу сделать timeagoплагин, чтобы творить чудеса с обновленным элементом abrr.timeago?
Какую функцию я должен вызывать?Должен ли я удалить jQuery("abbr.timeago").timeago();
из функции готовности документа или оставить ее?спасибо
РЕДАКТИРОВАТЬ ВОПРОС:
@ squiddy пример работает, обновляет время только один раз и просто остается неизменным.Например, если я добавлю timeago к текущему времени ... то оно просто не изменится?
ОБНОВЛЕНИЕ BOUNTY:
Пожалуйста, не обращайте внимания на предыдущеевопрос .На моем веб-сайте есть ссылка, по ее нажатию вызывается функция getJSON, которая получает некоторую информацию с сервера в таблицу.
Каждая строка представляет обратную связь с сервера.Вот мой псевдокод getJSON:
$.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
});
Так что этот getJSON вызывается для каждого отзыва, получаемого от сервера (n раз).И когда json завершает работу, соответствующий столбец в таблице заполняется последним обновленным временем.
Но похоже, что timeago не читает измененное значение заголовка, оно не распознает обновленный DOM.Я помещаю console.log (element.attr ("title")) для каждого отклика от сервера в целях отладки, просто чтобы посмотреть, установил ли я атрибут title на текущее время, и это действительно так, но timeago забирает первоначально загруженный заголовокзначение.
Что мне делать, я также попробовал эту версию:
$.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"));
});
});
Я потратил несколько часов, пытаясь найти несколько возможных решений, например, функцию, вызываемую каждые n секунд, для вызовафункция времени, но всегда одинаковые результаты