Страницы: 1
Очень хочется сделать свои tooltip'ы для каждой строки дерева (treerow или treecell, не важно) вместо стандартного поведения (значения label если все на экране не уместилось)
Подскажите, пожалуйста, куда копать.
"Software is like SEX - it's better when it's FREE" (C) Linus Torvalds
Отсутствует
Можно посмотреть, как сделан список элементов страницы в Adblock Plus.
<treechildren tooltip="elementId">
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Можно посмотреть, как сделан список элементов страницы в Adblock Plus.
<treechildren tooltip="elementId">
Спасибо, разобрался. Ниже пример, единственное "но" - периодически возникает ошибка "tree1.boxObject.getCellAt is not a function", но это не критично.
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="yourwindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <tooltip id="treeTooltip" noautohide="true" onpopupshowing="return showTreeTooltip(event)"/> <tree id="tree1" flex="1" hidecolumnpicker="true" seltype="single" > <treecols> <treecol id="name1" flex="1" label="Name" /> <treecol id="sex1" flex="1" label="Sex" /> <treecol id="color1" flex="1" label="Color" /> <treecol id="attr1" flex="1" label="Attribute" /> </treecols> <treechildren tooltip="treeTooltip"> <treeitem> <treerow mytooltip="Pear row tooltip"> <treecell label="Pearl" /> <treecell label="Female" /> <treecell label="Gray" /> <treecell label="Frumpy" /> </treerow> </treeitem> <treeitem> <treerow mytooltip="Aramis row tooltip"> <treecell label="Aramis" /> <treecell label="Male" /> <treecell label="Black" /> <treecell label="Cute" /> </treerow> </treeitem> <treeitem> <treerow mytooltip="Yakima row tooltip"> <treecell label="Yakima" /> <treecell label="Male" /> <treecell label="Holstein" /> <treecell label="Handsome" /> </treerow> </treeitem> </treechildren> </tree> <script type="text/javascript"> <![CDATA[ function showTreeTooltip(event) { try { let col = {}; let row = {}; let childElement = {}; var tree1 = document.getElementById('tree1'); var treeTooltip = document.getElementById('treeTooltip'); tree1.boxObject.getCellAt(event.clientX, event.clientY, row, col, childElement); if (row.value>-1) { var treecell1 = tree1.view.getItemAtIndex(row.value).firstChild; treeTooltip.setAttribute('label',treecell1.getAttribute('mytooltip')+'\nX: '+event.clientX+'\nY: '+event.clientY+'\nrow: '+row.value+'\ncol: '+col.value.id); return true; } else { return false; } } catch (e) { //alert(e.message); return false; } } ]]> </script> </window>
"Software is like SEX - it's better when it's FREE" (C) Linus Torvalds
Отсутствует
А если делать
tree.treeBoxObject.getCellAt()
?
Добавлено 04-09-2009 17:01:08
А, нет, это все равно:
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
В случае с treeBoxObject вроде лучше. По крайней мере эта ошибка не появляется и функциональность сохранилась. Спасибо.
"Software is like SEX - it's better when it's FREE" (C) Linus Torvalds
Отсутствует
Страницы: 1