From c8ca83c78db6bfec30307741e6881620c37b3833 Mon Sep 17 00:00:00 2001 From: Jan Graichen Date: Thu, 10 May 2012 10:58:27 +0200 Subject: [PATCH 1/2] Add tests for title attribute preservation of time tags. --- test/index.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/index.html b/test/index.html index 3bf4f95..a215d1c 100644 --- a/test/index.html +++ b/test/index.html @@ -73,6 +73,9 @@

Date only (default tooltip): .

Timestsamp (with millis): (you shouldn't see this).

+

+

+

Errors

Bad (letters): (this should be displayed).

@@ -302,6 +305,14 @@ ok($("#defaultTooltip").attr("title") == "2008-02-26", "correctly set"); }); + test("should preserve title in time tags", function () { + ok(($("#testTimeTitle").attr('title') === "May 10, 2012 10:06"), "title preserved") + }); + + test("should set title in time tags without a title", function () { + ok(($("#testTimeTitle2").attr('title') === "May 10, 2012"), "title set") + }); + module("Parsing"); // Note, different browsers behave slightly different From 92e87051445e8f51449ab26a4386cae0662a2676 Mon Sep 17 00:00:00 2001 From: Jan Graichen Date: Thu, 10 May 2012 11:00:18 +0200 Subject: [PATCH 2/2] Preserve already present title attribute in time tags. Also extract isTime check to avoid duplication. --- jquery.timeago.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/jquery.timeago.js b/jquery.timeago.js index b4c93f4..b137ea6 100644 --- a/jquery.timeago.js +++ b/jquery.timeago.js @@ -96,10 +96,12 @@ return new Date(s); }, datetime: function(elem) { - // jQuery's `is()` doesn't play well with HTML5 in IE - var isTime = $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time"); - var iso8601 = isTime ? $(elem).attr("datetime") : $(elem).attr("title"); + var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title"); return $t.parse(iso8601); + }, + isTime: function(elem) { + // jQuery's `is()` doesn't play well with HTML5 in IE + return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time"); } }); @@ -127,7 +129,7 @@ if (!element.data("timeago")) { element.data("timeago", { datetime: $t.datetime(element) }); var text = $.trim(element.text()); - if (text.length > 0) { + if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) { element.attr("title", text); } }