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
回调中。