You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
1.5KB

  1. function grПодсказки()
  2. {
  3. this.создать = function()
  4. {
  5. this.задано = {};
  6. };
  7. this.задатьПодсказку = function(имя)
  8. {
  9. let за = this.задано[имя];
  10. if (!за.элемент || !за.текст)
  11. {
  12. return;
  13. }
  14. let элемент = document.getElementById(за.элемент);
  15. if (!элемент)
  16. {
  17. return;
  18. }
  19. элемент.setAttribute("uk-tooltip", `pos: right; title: ${за.текст}`);
  20. };
  21. this.обработатьКлюч = function(ключ, путь, значение)
  22. {
  23. if (!ключ.startsWith("gr.подсказки"))
  24. {
  25. return;
  26. }
  27. let имя = путь[2];
  28. let свойство = путь.slice(3).join(".");
  29. if (!this.задано[имя])
  30. {
  31. this.задано[имя] = {};
  32. }
  33. this.задано[имя][свойство] = значение;
  34. this.задатьПодсказку(имя);
  35. };
  36. this.подсказкаДляЭлемента = function(элемент)
  37. {
  38. for (var имя in this.задано)
  39. {
  40. let подсказка = this.задано[имя];
  41. if (подсказка.элемент == элемент)
  42. {
  43. return имя;
  44. }
  45. }
  46. return null;
  47. };
  48. // Конструктор.
  49. this.создать();
  50. };