Исправлена ​​ошибка для script, которая применяет CSS к атрибуту title

В приведенном ниже script применяется класс CSS к атрибуту title html. Исходная страница, в которой отображается script, находится здесь: Как изменить стиль атрибута Title внутри тега привязки?

Отлично работает, но имеет небольшую ошибку. Если атрибут title пуст (<input type="text" title="">), он по-прежнему показывает пустое всплывающее окно на экране.

Кто-нибудь может помочь с этим? Что-то вроде "если атрибут title не имеет значения, не применяйте css, не показывайте всплывающее окно. Спасибо!

Script ниже:

// Use a closure to keep vars out of global scope
(function () {
    var ID = "tooltip", CLS_ON = "tooltip_ON", FOLLOW = true,
    DATA = "_tooltip", OFFSET_X = 20, OFFSET_Y = 10,
    showAt = function (e) {
        var ntop = e.pageY + OFFSET_Y, nleft = e.pageX + OFFSET_X;
        $("#" + ID).html($(e.target).data(DATA)).css({
            position: "absolute", top: ntop, left: nleft
        }).show();
    };
    $(document).on("mouseenter", "*[title]", function (e) {
        $(this).data(DATA, $(this).attr("title"));
        $(this).removeAttr("title").addClass(CLS_ON);
        $("<div id='" + ID + "' />").appendTo("body");
        showAt(e);
    });
    $(document).on("mouseleave", "." + CLS_ON, function (e) {
        $(this).attr("title", $(this).data(DATA)).removeClass(CLS_ON);
        $("#" + ID).remove();
    });
    if (FOLLOW) { $(document).on("mousemove", "." + CLS_ON, showAt); }
}());

Ответ 1

Таким образом:

$(document).on("mouseenter", "*[title]:not([title=''])" ...

Ответ 2

Один из способов - немедленно вернуться, если нет названия:

   $(document).on("mouseenter", "*[title]", function (e) {
        if (!$(this).attr('title')) return;
        // rest of code
    });

@c-smile ответ чище, хотя.