jQuery Ajax工具提示

我尝试通过这个jQuery插件做Ajax工具提示: http : //jquery.bassistance.de/tooltip/demo/

我有这样的事情:

footnote.

$(function() { $("#foottip span").tooltip({ bodyHandler: function() { //dj ajax here and cache var tip = '' var url = $(this).attr("href"); $.ajax({ url:url, success:function(html){tip = html;}, async:false }); return tip }, showURL: false }); })

我使用异步Ajax请求来执行此操作,但解决方案存在问题,有时会重定向页面。 这似乎是一个错误。 如何使用异步请求执行Ajax工具提示? 我无法找到将结果异步传递给工具提示的方法。

我对抗同样的问题。 在这里发现了一个聪明的技术,它在bodyHandler回调中动态创建一个元素,然后在AJAX调用中更新它以巧妙地实现所需的效果。

适用于上述问题:

 $("#foottip span").tooltip({ bodyHandler: function() { var url = $(this).attr("href"); var tip = $("").html("loading tip..."); $.ajax({ url: url, success: function(html){ tip.html(html); } }); return tip; }, showURL: false }); 

是的,您的代码将无法以异步方式工作:

 var tip = '' var url = $(this).attr("href"); $.ajax({ url:url, success:function(html){tip = html;}, async:true }); // -- The problem here is that your bodyHandler function will return // -- immediately, before the AJAX callback is called. return tip 

要解决此问题,您可能必须将工具提示呈现代码放在$.ajax请求的success回调中。