我有一个(我的意思是迷你)工具提示插件,我已经创建但遇到了一个问题。基本上,如果在dom ready事件上实例化,它一切正常。但是,如果我需要(像我一样)将$ ajax数据带到更改dom的页面上,那么我的插件不再(出于显而易见的原因)有效。
我不太清楚插件中的哪个位置我会添加必要的代码以使其正常运行(我已经尝试将实时事件附加到悬停和鼠标移动事件上,但结果很精细)。我不希望每次运行$ ajax方法时都必须重新初始化工具提示代码,因为页面中涉及很多不同的方法。我宁愿将某种“实时”功能附加到工具提示插件。
无论如何,可以在这里找到完整的跟踪:
http://www.jsfiddle.net/jimibt/FLSXv/
希望它在某个地方缠绕/响铃......[更新] 重新进行迭代,将实时事件添加到悬停和鼠标移动事件会导致我的“真实”示例中出现异常结果。我正在寻找替代方案。感谢...
答案 0 :(得分:2)
当您应用工具提示时,还要添加一个新类,例如hasTooltip
。然后,当您完成AJAX请求时,查找没有a
类但具有hasTooltip
类但已应用并运行vtip
函数的所有$.tooltip()
个元素在他们身上。
你可以找到这样的新元素:
$('a.vtip:not(a.hasTooltip)');
请参阅my update示例。
答案 1 :(得分:1)
这很简单:
$(this).live("hover", function(e) {
this.t = this.title;
this.title = "";
$("body").append("<p id='tooltip'>" + this.t + "</p>");
$("#tooltip").hide().css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn(1400);
}, function() {
this.title = this.t;
$("#tooltip").fadeOut('fast').remove();
});
$(this).live("mousemove", function(e) {
$("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px");
});