【问题标题】:Generate a tooltip in Tooltipster based on the contents of the element在 Tooltipster 中根据元素的内容生成一个工具提示
【发布时间】:2016-11-16 20:11:24
【问题描述】:

我正在使用Tooltipster 库来生成工具提示,并使用他们简单的AJAX-custom-function 示例作为基础。我需要修改它,而不是像在他们的示例中看到的那样查询静态“http://example.com/ajax.php”,而是得到“http://example.com/ajax.php?id=contents_of_the_element_being_clicked”。例如,如果我的 HTML 中有 <span>textbook</span>,则弹出窗口的内容链接将是“http://example.com/ajax.php?id=textbook”。

我已成功地将示例重新用于在每个<span> 上激活,但我无法理解如何将 <span> 的 innerHTML 内容带入。

所以我要寻找的是用元素内容填充变量的一行,我稍后可以将其附加到 $.get ... function(data) 请求。

【问题讨论】:

    标签: jquery ajax tooltip tooltipster


    【解决方案1】:

    您可以使用jquery 中的html() 函数来提取内部html。此外,您可以使用param()对提取的html进行编码。

    var param = "?" + $.param({ id: origin.html() });       
    

    完整示例(使用 Tooltipster 3.3.0jQuery 1.10):

    $('.tooltip').tooltipster({    
        functionBefore: function(origin, continueTooltip) {
            var param = "?" + $.param({ id: origin.html() });       
            if (origin.data('loaded') !== true) {
                $.get('example.com/ajax.php' + param, function(data) {
                    origin.data('loaded', true);
                    origin.tooltipster('content', data.id);
                    continueTooltip();
                });            
            }
            else {
                continueTooltip();        
            }
        }
    });
    

    Tooltipster Version 4:

    $('.tooltip').tooltipster({    
        content: 'Loading...',
        functionBefore: function(instance, helper) {
            var $origin = $(helper.origin);
            var param = "?" + $.param({ id: $origin.html() });       
            if ($origin.data('loaded') !== true) {
                $.get('example.com/ajax.php' + param, function(data) {
                    instance.content(data.id);
                    $origin.data('loaded', true);
                });            
            }
        }
    });
    

    HTML:

    <span class="tooltip" title="This is my span's tooltip message!">Some text test</span>
    

    【讨论】:

    • 只是复制粘贴示例我得到 TypeError: origin.html is not a function。 (在'origin.html()'中,'origin.html'是未定义的)
    • 它包含span的内容:这里是Some text test。这个函数不是 Tooltipster 的一部分,它是在 jquery 库中实现的。 param 包含您的查询的 id 参数。最后,您必须调整查询 url,这是我的示例来自 jsfiddle
    • 您使用的是相同版本的 Tooltipster 吗?我使用的是较旧的(3.3.0) - 它与 4.0 不同。在这里,您必须改编工具提示器主页中的示例。
    • 是的,我明白这一切。但是,我收到了上面提供的错误(刚刚编辑过的评论),它似乎与 span 元素的内容或 param 变量的内容无关。我再次收到的消息是“TypeError: origin.html is not a function. (In 'origin.html()', 'origin.html' is undefined)”所以它似乎与 Tooltipster 无关。跨度>
    • 我使用的是最新版本的 Tooltipster。
    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多