【问题标题】:jQuery Tooltip that doesn't use the <title> attribute不使用 <title> 属性的 jQuery 工具提示
【发布时间】:2013-06-07 00:04:21
【问题描述】:

我正在寻找一个不使用&lt;title&gt; 属性的jQuery 工具提示插件。到目前为止,我已经尝试了一些变化,包括; Tooltipster、PowerTip、jTip 和 TipTip!它们都可以工作,但不能在 IE8 中正常工作(这是必须的)。他们也都使用&lt;title&gt; 属性。

我需要能够在包含块中使用其他&lt;html&gt; 标签,例如&lt;p&gt; 等,因此需要 使用&lt;title&gt;。使用&lt;div&gt; 或类似的插件将是完美的,因为我可以自定义我想要的方式并使用相关的&lt;html&gt; 标签。

我已经搜索了又搜索了,但找不到任何东西,所以如果有人知道,我将不胜感激!

【问题讨论】:

  • 你可以简单地改变插件拉取数据的方式——而不是从title属性拉取文本,你可以让它在目标元素中搜索特定的div,甚至从定制的HTML5数据中拉取数据- 属性。您必须深入研究源代码才能进行更改。
  • jQuery UI 的tooltip widget 可以显示任意内容并支持Internet Explorer 6、7和8。

标签: jquery plugins jquery-plugins tooltip


【解决方案1】:

您可以使用jQuery Tooltip 不带标题的custom-content,例如:

$(function () {
    var content = 'We ask for your age only for statistical purposes.';
    $(document).tooltip({
        items: "input",
        content: function () {
            var element = $(this);
            if (element.is("input")) {
                return "<p class='arrow'>" + content + "</p>";
            }
        }
    });
});

FIDDLE DEMO

【讨论】:

  • 谢谢,我会看看这个。这向后兼容吗?我担心的是我使用的是 jQuery 版本 1.5.1(不是我的选择)。我可以更新 jQuery 的版本,但我需要确保任何组件都支持 IE8。
  • @Kiz 你可以使用jQuery Migrate Plugin 来实现这一点..
  • 谢谢,最终编辑tooltipster,但根据您的回答更改内容!
【解决方案2】:

问题在于,尽管您可以为工具提示指定 {content:''},但它需要一个标题标签,或者您指定一个备用标签以供它使用,即使它不会使用属性值。

但是,您为{items:'selector'} 传递的值是一个选择器。默认情况下它是 {items:'[title]'}。与其将选择器设置为属性,不如将其设置为正在应用的标签的名称。在您的情况下,坦率地说,在大多数情况下,任何人都会手动设置工具提示,您可以使用{items:'*'},它是一个通配符选择器,适用于任何元素。

标记:

<p class="example">
  Joke Part One.
</p>

脚本:

$('.example').tooltip({
  content: 'This will be your working tooltip',
  items:'*'
});

示例:http://jsbin.com/depax/5/edit?html,js,output

【讨论】:

    【解决方案3】:

    您可以使用 twitter bootstrap 作为工具提示。网上有很多可扩展的插件。

    http://twitter.github.com/bootstrap/javascript.html

    【讨论】:

      【解决方案4】:

      您可以从目标元素中的标准或自定义 (data-) 属性中提取内容,如下所示:

      $(document).tooltip({ items: "a[data-title]" },
      {content: function(){
      return $(this).attr("data-title");
      }
      });
      

      这里的'content'选项被定义为一个返回data-title属性值的函数。使用函数返回工具提示内容的情况还有很多,例如它可以返回 AJAX 调用或其他动态内容的结果。

      如果您想在工具提示中包含格式化的 HTML,content:function 可以检索页面上隐藏 div 的内部 HTML。

      【讨论】:

        【解决方案5】:

        你可以试试twitter bootstrap popover,也可以自定义css。

        看看吧。

        http://twitter.github.io/bootstrap/javascript.html#popovers

        【讨论】:

          【解决方案6】:

          这有点老套,但是当items 不适合你时(假设你同时为多个选择器做)你也可以动态设置标题:

          $(el).attr('title', '')
               .tooltip({
                    content: //...
                    position: //...
                });
          

          【讨论】:

            【解决方案7】:

            标题是 HTML 标签的一个属性。您可以根据需要自定义库。

            您可以定义不同的属性而不是标题,然后用作工具提示。

            例如

            <div tooltip_text="hello world!"> ... </div>
            

            【讨论】:

            • 那是无效的 HTML。您需要使用 data- 属性,例如data-tooltip-text
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-03
            • 2011-06-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多