Приветствую всех собравшихся )

Проблема у меня такая - генерирую меню по хмл динамический и вешаю на кнопку (type="menu-button"). Все бы ничего, но у элементов не содержащих tooltiptext показывается предыдущий всплывавший тултип. Если ничего не всплывало - показывается маленький прямоугольничек. Атрибуты tooltiptext или tooltip я не добавлял, по DOM Inspector их тоже нет, но тултип всплывает. Пытался заглушить его создавая пустой тултип и вешая на tooltip - всплывают вдвоем ;) Подскажите кто-нибудь как справиться с тултипом ?

Это такое наследование... Т.е., наличие атрибута tooltiptext у родительского элемента приводит к тому, что что-то пытается всплыть на дочерних.

В свое время додумался до только одного решения (можно, конечно, еще задать всем по tooltiptext'у):

Выделить код

Код:

<menu tooltip="tooltipId" mytooltip="Some Text">
  <menupopup>
    <menuiten />
    ...

<tooltip id="tooltipId" onpopupshowing="return showTT(this.firstChild);">
  <label />
</tooltip>

var showTT = function(lbl) {
  var val = document.tooltipNode.getAttribute("mytooltip");
  lbl.value = val;
  return !!val;
};

Если атрибута mytooltip нет, происходит return false, и tooltip не показывается.

т.е. тултип надо отдельно создать и таким образом показывать, а с обычным tooltiptext ничего сделать нельзя ?

В твоём случае нужен только onmousemove, но oncommand и onclick тоже лучше поставить чтобы исключить подобные проблемы.
А вообще смотри http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-flow

Выделить код

Код:

<toolbox xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
	<toolbar>
		<toolbarbutton label="Button" type="menu-button" tooltiptext="Only on button">
			<menupopup
						oncommand="event.stopPropagation();"
						onclick="event.stopPropagation();"
						onmousemove="event.stopPropagation();">
				<menuitem label="1" />
				<menuitem label="2" />
				<menuitem label="3" />
			</menupopup>
		</toolbarbutton>
	</toolbar>
</toolbox>