Привет!

Может кто подскажет, как предотвратить пропадание tooltip (зафиксировать, пока на него
не перешол курсор)?
вообщем у меня есть toolbar и я сделал для одной кнопки multi-lined tooltip с линком на нём,
но это линк невозможно нажать т.к. tooltip пропадает, если курсор уходит с кнопки ...
такая неприятность ....   весь проект готов, а вот это ....

azorea
tooltip - это же, вроде бы, всплывающая подсказка? Она и не предназначена под клик. А почему нельзя сделать по аналогии со стандартной кнопкой с выпадающими подпунктами? Как кнопка Print. Я себе переделывал в Мозилле:

Выделить код

Код:

<toolbarbutton id="print-button" type="menu-button" class="toolbarbutton-1"
        label="SaveAs"
        oncommand="saveDocument(window._content.document);">  
 <menupopup>
  <menuitem label="Preferences"
        oncommand="goPreferences('navigator', 
        'chrome://communicator/content/pref/pref-navigator.xul', 'navigator')"/>
  <menuitem label="Page info"
        oncommand="BrowserPageInfo();"/>
 </menupopup>
 </toolbarbutton>

это грустно...
заказчик хочет тултипы...
вообще-то я прикрутил свои тултипы из com модуля - помучился конечно, но прикрутил,
но они отличаются от родных тултипов firefox-а по внешнему виду
ладно, может оставлю как есть...

azorea, а как насчет такого варианта:

Выделить код

Код:

<?xml version="1.0"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
  <script type="application/x-javascript" src="file:///g:\tmp\Mozilla\xul\myscript.js"/>
  <tooltip id="my_tooltip" onmouseover="tmo();" onmouseout="tmou();">
    <vbox>
      <description value="my tooltip"/>
      <button id="new_button_002" label="inner button" onclick="ibc();"/>
    </vbox>
  </tooltip>
  <button label="outer button" id="mybutton" onmouseover="mo(event);" onmouseout="mou();"/>
</window>

и файл myscript.js:

Выделить код

Код:

var b=true;
function mo (event)
{
    var x=document.getElementById("my_tooltip");
    var y=document.getElementById("mybutton");
    x.showPopup(y,event.screenX,event.screenY,"popup");
}
function mou ()
{ window.setTimeout (hide_mytooltip,500); }
function ibc()
{ alert("inner button click !"); }
function hide_mytooltip()
{
    if (b)
    {
        var x=document.getElementById("my_tooltip");
        x.hidePopup();
    }
}
function tmo ()
{ b=false; }
function tmou ()
{ b=true; }