Как я могу позволить элементам внутри элемента 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>
в некоторой степени (всплывающее окно, когда выбрано и т. д.).