Как отделить текст всплывающей подсказки от файла HTML - PullRequest
1 голос
/ 03 ноября 2011

Я использую этот плагин для всплывающей подсказки. В качестве заполнителя текста всплывающей подсказки используется атрибут 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. Это хорошая идея?

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Вам не нужны квадратные скобки.Давайте предположим, что label в объекте представляет идентификатор элемента.Затем используйте:

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 голос
/ 03 ноября 2011

Я бы хотел отвлечь вас от выбранного вами пути, если смогу.

Поместить всплывающую подсказку в сам HTML в качестве атрибута title гораздо лучше, потому что ...

  1. Это будет иметь смысл для вас как для разработчика - текст используется там, где он будет использоваться, поэтому вы сможете увидеть контекст, в котором он используется. Если у вас есть файл JavaScript, содержащий эти ресурсы, вы будете полагаясь на метку, чтобы сказать вам, где текст используется, и по мере роста списка это станет хлопотным.

  2. Это будет просто работать! Если JavaScript отключен, или устройство не запускает JavaScript, или у вас есть ошибка в вашем JavaScript, атрибут title все равно будет отображать всплывающую подсказку - она ​​может выглядеть не так, как классная подсказка JavaScript, но вы можете гарантировать, что все ваши пользователи могут получить информацию во всплывающей подсказке.

  3. Позже, если вы поддерживаете несколько языков или получаете свой контент из системы управления контентом, вы захотите внедрить текст через сервер, а не через JavaScript - поместив текст в тег заголовка, вы сделаете он доступен для вашего JavaScript, поэтому вам больше не нужно синхронизировать JavaScript с вашей системой управления контентом и вам не нужно получать переведенные версии вашего текстового ресурса JavaScript.

Надеюсь, это поможет вам принять решение.

...