2010-11-05 22 views
0

我有一点(我的意思是迷你)工具提示插件,我已经创建,但遇到了问题。基本上,如果在dom就绪事件上实例化,它一切正常。但是,如果我需要(像我一样)将$ ajax数据带到改变dom的页面上,那么我的插件不再(出于显而易见的原因)起作用。我如何添加jquery .live()到这个代码

我不太清楚插件中的哪个部分,我会添加必要的代码以使其正常工作(我试图将实时事件附加到悬停和鼠标移动事件上,但结果不稳定)。我不想在每次运行$ ajax方法时都重新初始化工具提示代码,因为页面中涉及到不同的几个不同的代码。我宁愿某种“实时”功能能够附加到工具提示插件。

总之,整条曲线可以在这里找到:

http://www.jsfiddle.net/jimibt/FLSXv/

希望树枝/摇铃某处...

[更新]再次重申,加入将直播活动拖放到悬停和鼠标移动事件上会导致我的“真实”示例中出现不稳定的结果。我正在寻找替代这个。谢谢...

回答

2

当你申请你的提示,还添加了新的类,如hasTooltip。然后,当您完成您的AJAX请求时,查找所有a元素没有hasTooltip类,但确实有vtip类,应用并在其上运行您的$.tooltip()函数。

你可以找到像这样这些新元素:

$('a.vtip:not(a.hasTooltip)'); 

my update你的例子。

+0

js - 如果你有时间快速(js)小提琴:),我们很乐意看到这个动作。是否可以在插件中添加一个$ ajax complete事件,在所有ajax事件完成时触发,并且执行了您所指的小运行? – 2010-11-05 14:27:10

+0

js - 你的一个可爱的天才 - 现在发送一个! smuschhhh ...非常感谢你。那是我以后的100%。肌肉感谢! +1加答案! – 2010-11-05 14:37:11

+0

这里是您要求的AJAX方法 - http://www.jsfiddle.net/jsumners/YSFWD/ – 2010-11-05 14:37:46

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"); 
    }); 
+0

culebrón - y,同意。我已经尝试过了(请参阅我的原始问题),但它与我正在处理的实际“真实”代码中的稳定结果一起工作。谢谢你的消息。 + +1努力:) – 2010-11-05 14:09:22

+0

culebrón - 你的例子(http://www.jsfiddle.net/FLSXv/24/)显示我引用:)的古怪behaviuor。没有在浏览器会话中显示? – 2010-11-05 14:24:44

相关问题