如何让xul tab元素中的元素接收鼠标事件?

时间:2015-03-30 13:40:50

标签: tabs firefox-addon mouseevent xul xbl

考虑这个xul标记:

<tabbox>
  <tabs>
    <tab>
      <textbox width="50">
    </tab>
  </tabs>
  <!-- ... -->
</tabbox>

...我无法用鼠标选择<textbox>。似乎<tab>屏蔽了任何鼠标事件到子节点。如何让<textbox>接收鼠标事件?

我在mousethrough="always"mousethrough="never"元素上尝试了<tab><textbox>等属性,但说实话,我不完全确定该属性是什么应该做的。此外,我认为它仅适用于<stack>

中的元素

我还在allowevents="true"上尝试了<tab>,但不幸的是,这也没有做任何事情。

做什么在某种程度上是通过JavaScript传递焦点,如下所示:

theTab.addEventListener( 'focus', function( event ) {
  theTextbox.focus();
} );

...但这太笨重了,仍然没有使<textbox>行为正常(无法选择文字等)。那么我可能需要为一系列事件实现这一点。

那么,我可以采取什么简单的步骤让<tab>元素的子节点按预期运行?

或者我是否需要完全扩展选项卡XBL,因为选项卡通常不会按照我打算的方式运行?

修改

我刚刚想到我可能可能通过完全省略标签而在视觉上伪造一点,只有一个<textbox>,看起来像一个标签,其中包含:

<textbox id="someId"/>

#someId {
  -moz-appearance: tab
}

...并尝试以某种方式将其合并到<tabs>元素中。

尽管如此,我宁愿找到一个实际<tab>的解决方案,以便我可以在某种程度上让<tab>表现为实际<tab>(弹出)选择时,等等。)。

0 个答案:

没有答案