工具提示器中的属性/变量被忽略

Attributes / vars in tooltipster are ignored

两天来,我一直在努力弄清楚为什么 tooltipster(顺便说一下,这很棒)没有考虑 javascript / head 部分中声明的任何 var。例如:

<script>
$(document).ready(function() {
    $('.tooltip').tooltipster({
        var data = 'toto';
        contentAsHTML: true,
        animation: 'slide',
        delay: 100,
        content : $(data)
        });
});
</script>

与:

<img src="Pics/winter.png" alt="winter" border="1" class="tooltip" />

根本不起作用(意味着工具提示未显示在 HTML 页面中)。我尝试了几种编码变体,包括添加 '; ' 等等,但它不会改变结果。 我还尝试使用以下方法获取元素的属性:

content : '$(this).attr('alt')'

这是我的最终目标,也没有用。我错过了什么?

最可能的原因是

var data = 'toto';

contentAsHTMLanimationdelaycontent 等是 tooltipster 接受的选项。

但是当它遇到 var data = 'toto'; 时会出错,因为它不是 tooltipster 可以接受的选项

我已经快速 jsFiddle 演示了 "correct" 从原始元素设置工具提示内容的方法 - 在它初始化时。

之前无法正常工作的原因是:

  1. 您在传递给 tooltipster 函数的 JSON 对象中声明变量 data - 这是 JavaScript.
  2. 的无效语法
  3. 您的第二次尝试更接近,但在 content 属性 中使用 this 是对 "outside" this 范围的模糊引用 - 可能无关到工具提示实例或您之后的 HTML 节点。

这是修改后的代码,可以满足您的需求:

$(document).ready(function() {
    $('.tooltip').tooltipster({
        contentAsHTML: true,
        animation: 'slide',
        delay: 100,
        functionInit: function(instance, helper) {
          var alt = $(helper.origin).attr('alt');
          instance.content(alt);
        }
    });
});

希望对您有所帮助:)