Дело в том, что когда
selected
возвращает ложь, элемент удаляется из древа DOM и, следовательно, перестаёт работать jquery плагин инициализированный на нём. Чтобы это избежать, необходимо научиться понимать жизненный цикл Vue компонента. К тому же следует выделять код работающий с DOM но не являющийся неотъемлемой частью компонента в директивы. Например (для однофайловых компонентов):
<template>
<div v-fancy-plugin="{ argumentObjectKey: 'value' }"></div>
</template>
<script>
import $ from 'jquery'
import fancyPlugin from 'fancy-plugin'
export default {
directives: {
fancyPlugin: {
inserted (element, argumentObject) {
$(element).fancyPluginInit(argumentObject)
}
}
}
</script>
Таким образом jquery код будет инициализирован в момент помещения элемента в DOM древо.