2011-11-03 39 views
1

我正在使用this plugin作为工具提示。它使用title属性作为工具提示文本占位符。有太多的工具提示文字,我想把它们全部放在一个地方,以便轻松维护或更新。什么可能是一个好方法?如何从HTML文件中分离出工具提示文本

我的想法是建立在js文件的地图,如:

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

而且使用jQuery这些标题内容$(document).ready添加到页面中。 这是个好主意吗?

回答

2

你不需要方括号。我们假设对象中的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

1

我想将您从您选择的路径转移出去,如果可以的话。

把工具提示到HTML本身作为一个title属性是因为要好得多......

  1. 它将对你有意义的开发商 - 文本是它会用到,所以你可以看到正在使用的上下文。如果您有一个包含这些资源的JavaScript文件,您将依赖标签告诉您文本正在被使用的位置,随着列表的增长,这将变得很麻烦。

  2. 它只会工作!如果JavaScript被禁用,或者设备不运行JavaScript,或者JavaScript中有错误,title属性仍然会导致显示工具提示 - 它看起来可能不像一个很酷的JavaScript工具提示,但可以保证您的所有用户都可以获取工具提示中的信息。

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

我希望这可以帮助您做出决定。

+0

我同意你的观点。但是,这是一个django项目,标签是动态填充的。这就是说,在模板中,它是一行代码:{%for label_name in labels%}。你会在这种情况下做什么? – Stan

+0

我正在写很多使用MVC的网站,并且我将资源写入HTML属性,因为我根据用户位置本地化语言 - 这可能对您不适用,因此您必须作出判断呼叫。 – Fenton

相关问题