Как я могу позволить элементам внутри элемента xul tab получать события мыши?

Учитывая эту разметку 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 ответов

Другие вопросы по тегам