Tooltipster 在 ajax 内容中不起作用

Posted

技术标签:

【中文标题】Tooltipster 在 ajax 内容中不起作用【英文标题】:Tooltipster not working in a ajax content 【发布时间】:2014-06-09 12:04:24 【问题描述】:

在堆栈溢出中搜索时。我发现我也面临一个老问题。但没有人回答。 所以只是想知道有人对此有任何想法

How to get jquery Tooltipster Plugin to work for newly created DOM elements?

以下是我的代码

$(document).ready(function() 
$('.test_link').tooltipster(
    interactive:true,   
    content: 'Loading...',
    functionBefore: function(origin, continueTooltip) 
        continueTooltip();      
        // next, we want to check if our data has already been cached
        //if (origin.data('ajax') !== 'cached') 
            $.ajax(
                type: 'POST',
                url: 'example.php',
                success: function(data) 
                    // update our tooltip content with our returned data and cache it
                    origin.tooltipster('content', $(data)).data('ajax', 'cached');
                
            );
      //  
    
);

);

【问题讨论】:

【参考方案1】:

我的问题解决了。

只需在 ajax 内容中添加实例化脚本即可。 还设置选项multiple:true

$(document).ready(function() 
$('.test_link').tooltipster(
    interactive:true, 
    multiple:true,
    content: 'Loading...',
    functionBefore: function(origin, continueTooltip) 
        continueTooltip();      
        // next, we want to check if our data has already been cached
        //if (origin.data('ajax') !== 'cached') 
            $.ajax(
                type: 'POST',
                url: 'example.php',
                success: function(data) 
                    // update our tooltip content with our returned data and cache it
                    origin.tooltipster('content', $(data)).data('ajax', 'cached');
                
            );
      //  
    
);

);

它在 Firefox 中对我有用。但没有在其他浏览器中测试

【讨论】:

【参考方案2】:

我知道这是一篇旧帖子,问题已解决,但我最近需要类似的东西。

在每个 ajax 函数上添加初始化并不是一个解决方案,因为我们在页面上动态加载了多个内容,因此找到的最简单的解决方案是:

$(document).on('mouseenter', '[data-toggle="tooltip"]', function()
        if ($(this).is('.tooltipstered')) 
            // Do nothing
         else 
            $(this).tooltipster(
                delay: 50,
                // Your other Tooltipster options
            );
            $(this).mouseover();
        
);

$('[data-toggle="tooltip"]') 是 OP 的 $('.test_link')

if阻止文件mouseenter的重复初始化。

【讨论】:

以上是关于Tooltipster 在 ajax 内容中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

AJAX 成功后在 tooltipster 中更新 html 内容

Jquery Tooltipster - ajax 后访问 DOM

CSRF 令牌在带有 Ajax 请求的 Laravel 5.1 异常处理程序中不起作用

@font-face 在 Firefox 中不起作用 [重复]

AngularJS、SweetAlert.js 在自定义指令中不起作用

URL::action 在 jquery ajax 中不起作用