使用jQuery循环PHP和目标

时间:2015-02-09 16:58:17

标签: php jquery loops

我有工具提示的这个功能:

//Tooltips
(function($) {
    $.fn.tooltips = function(html) {
        var $tooltip,
            $html;
        return this.each(function(data, html) {
            $html = $(html).attr("data-tooltip", data);
            var $tooltip = $('<div class="tooltip" data-tooltip="' + data + '">' + $html.attr('title') + '</div>').appendTo(".tip");
            $html.removeAttr("title").hover(function() {
                $html = $(this);
                $tooltip = $('div[data-tooltip=' + $html.data('tooltip') + ']');
                $tooltip.addClass("active");
            }, function() {
                $html = $(this);
                $tooltip = $('div[data-tooltip=' + $html.data('tooltip') + ']');
                setTimeout(function() {
                    $tooltip.removeClass("active");
                }, 100);
            });
        });
    }
})(jQuery);

$(function() {
    $("a.tip[title]").tooltips();
});

我有一个PHP循环:

echo '<span class="author-meta"><a class="author tip" id="'. $username .'" href="#" title="[Removed]">'. $username .'</a></span><br>';

目前,当您将鼠标悬停在一个名称上时,所有名称标签上都会显示所有标题标签。 如果将鼠标悬停在一个名称上,是否有一种简单的方法可以使用 - 只有该名称具有悬停事件?

代码来自免费的教程网站,我似乎无法找到,但我不记得评论部分提到的这个特殊问题,所以我不知所措! / p>

1 个答案:

答案 0 :(得分:1)

代码中的错误在:

.appendTo(".tip")

即将工具提示附加到class =“tip”的所有元素。您应该只附加到当前元素。第8行的代码应为:

var $tooltip = $('<div class="tooltip" data-tooltip="' + data + '">' + $html.attr('title') + '</div>').appendTo(this);