Та же концепция, что и у @Sindre, когда мышь наводит курсор на
, разбивает текст на слова и использует их для рендеринга.Когда вы нажмете на эти , выделите их.
В моем jsfiddle ниже щелкните одно слово, все те же слова будут выделены.Вы можете изменить способ сравнения с выбранным, например.сравните с индексом, а не с самим словом, чтобы выделить только отдельные слова.
Кроме того, я не использовал наведение мыши, а вместо этого щелкнул.Поэтому вы должны нажать
, чтобы выбрать (активировать, сделать цвет красным), а затем выбрать слово. jsfiddle здесь
// main code
<div
@click='select'
:class='cls'>
<p v-if='!split'> {{data}} </p>
<p v-else>
<span
v-for='word in spdata'
:class='chosen(word)'
@click='choose'>
{{word}}
</span>
</p>
</div>
// --------------------
methods: {
select (e) {
this.split = true
},
choose (e) {
let el = e.srcElement
this.chosenWord = el.innerText
console.log(this.chosenWord)
},
chosen (word) {
if (word.trim() === this.chosenWord.trim()) {
return ['chosen']
} else {
return []
}
}
},
computed: {
spdata () {
return this.data.split(' ')
}
}