Jquery工具 - Ajax的实时工具提示

时间:2011-01-13 16:04:21

标签: jquery tooltip jquery-tools

我有工具提示的工作版本(jQuery工具 - http://flowplayer.org/tools/demos/tooltip/index.html),

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
    } 
    }); 
});   

});

加载ajax之后,工具提示不再工作了,因为脚本已经加载了,我尝试了来自论坛http://flowplayer.org/tools/forum/30/37281的解决方案,但是没有工作,或者没有正确实现

这是代码:

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).not('.tt_init').tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
        } 
    });
    jQuery(this).not('.tt_init').addClass('tt_init'); 
});   

});

什么都没有...我做错了什么,谢谢你的帮助;),抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

如果问题是动态内容,您可以尝试使用live jQuery api。

jQuery('.more_info').live('mouseover', function(){
    // may need to check here if it already has a tooltip (depending on plugin)
    jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
           bottom: { 
           direction: 'down', 
           bounce: true 
       } 
  }); 
});

另一种解决方案是手动激活ajax内容的工具提示。类似的东西:

$('#result').load('ajax/test.html', function() {
  $(this).find('.more_info').tooltip({*/...*/});
});

或者您可以使用global responders为所有ajax请求执行此操作。

答案 1 :(得分:2)

与以下相同的解决方案:

livequery not working with groups

使用livequery插件。如果工具提示适用于您的所有页面,则每次都应刷新。这是生活中的问题。

另请查看此链接:

JQuery slimbox rebind after ajax callback