как разместить и разместить только 3 пролета в 1 теге заголовка? Между тем диапазон может поддерживать переключение определенного значения
Я пытаюсь получить некоторый опыт вроде
- поместите 3 промежутка в 1 тег заголовка,
- и каждый диапазон может переключать некоторые заданные значения при нажатии какой-либо кнопки для запуска команды,
- также можно использовать бесплатный тип
HTML-код результата выглядит так
<header class="holder">
<span class="location">var1</span>
<span class="when">var2</span>
<span class="where">var3</span></header>
то, что я думал, решение - создать holder
node и оберните 3 дочерних метки
вот моя ссылка на коды и ящик, но сообщите о некоторых ошибках, я уже потратил на это несколько дней, не знаю, как этого добиться, может ли кто-нибудь помочь мне одной подсказкой? Спасибо!
export default class Header extends Node {
get name() {
return 'header'
}
get schema() {
return {
content: 'location when where',
group: 'block',
draggable: false,
parseDOM: [
{ tag: `header`}
],
toDOM: node => [`header`,0],
}
}
commands({ type, schema }) {
return attrs => addListNodes(type,schema.time,attrs)
}
}
затем определите простые дочерние метки
export class When extends Mark {
get name() {
return 'when'
}
get defaultOptions() {
return {
index:0,
levels: ['Time','day','night','dawn'],
}
}
get schema() {
return {
attrs: {
index: {
default: 0,
},
},
content: 'inline*',
// group:"block",
// draggable: false,
parseDOM:
[
{
tag:`span.when`,
}],
toDOM: node =>
{
return [`span`,{class:"when","data-index":node.attrs.index}, this.options.levels[node.attrs.index]]},
}
}
commands({ type, schema }) {
//i try to use one button to loop switch the mark's value.
//however, the attrs here is a mouse event,since i call this command via a button click action,
//can not get the attrs.index value correctly
var self=this;
return attrs => {
attrs.index++;
if(attrs.index>=self.options.levels.length)
attrs.index=1;
return setBlockType(type, attrs)}
}
}