【问题标题】:How to separate out the tooltip text from the HTML file如何从 HTML 文件中分离出工具提示文本
【发布时间】:2011-11-03 13:58:20
【问题描述】:

我正在使用this plugin 作为工具提示。它使用title 属性作为工具提示文本占位符。工具提示文本太多,我想把它们都放在一个地方,以便于维护或更新。有什么好的方法?

我的想法是在js文件中创建一个地图,例如:

var tooltiptext =
[{
"label_1": "description for label 1",
"label_2": "description for label 2",
"label_3": "description for label 3",
...
}]

并使用jquery将这些标题内容添加到$(document).ready中的页面中。 这是一个好主意吗?

【问题讨论】:

    标签: javascript jquery jquery-plugins tooltip


    【解决方案1】:

    您不需要方括号。假设对象中的label 代表元素的ID。然后使用:

    var tooltiptext = {
        "label_1": "description for label 1",
        "label_2": "description for label 2",
        "label_3": "description for label 3",
        //....
        "label_n": "description for label n"
    };
    $.each(tooltiptext, function(label, title){
        $("#" + label).attr("title", title).tooltip();
    });
    

    在循环内部,您正在设置元素的title 属性。然后,tooltip 被调用。

    【讨论】:

      【解决方案2】:

      如果可以的话,我想让你远离你选择的道路。

      将工具提示作为标题属性放入 HTML 本身会更好,因为...

        1234563依靠标签告诉您文本的使用位置,随着列表的增长,这将变得很麻烦。
      1. 它会起作用的!如果 JavaScript 被禁用,或者设备没有运行 JavaScript,或者你的 JavaScript 有错误,title 属性仍然会导致显示一个工具提示 - 它可能看起来不像一个很酷的 JavaScript 工具提示,但你可以保证您的所有用户都能获得工具提示中的信息。

      2. 稍后,如果您支持多种语言或从内容管理系统获取内容,您将希望通过服务器而不是 JavaScript 注入文本 - 通过将文本放在标题标签中,您可以它可用于您的 JavaScript,因此您不再需要让 JavaScript 与内容管理系统保持同步,也无需获取 JavaScript 文本资源的翻译版本。

      我希望这可以帮助您下​​定决心。

      【讨论】:

      • 我同意你的观点。但是,这是一个 django 项目,标签是动态填充的。话虽如此,在模板中,它是一行代码:{% for label_name in labels %}。在这种情况下你会怎么做?
      • 目前我正在使用 MVC 编写很多网站,并且我将资源写入 HTML 属性,因为我根据用户位置对语言进行本地化 - 这可能适合您,也可能不适合您,所以您必须做出判断。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 1970-01-01
      相关资源
      最近更新 更多