Quasar Framework (Vue): складной и отпуск мышью
Я пытаюсь найти складной компонент внутри квазара. По какой-то причине событие наведения мыши не работает.
Подскажите пожалуйста, как можно заменить область вывода текста кнопкой, когда пользователь наводит указатель мыши на.
Пожалуйста помоги!:)
<q-collapsible
opened
icon="bookmark"
:label="$t('Custom dashboards')"
@mouseleave="var2 = true" //It doesn't work :(
@mouseenter="var2 = false" //It doesn't work
>
<q-item>
<q-btn
@click="func()"
icon="add"
:label="$t('Create')"/>
</q-item>
</q-collapsible>
1 ответ
Полный HTML/Script/CSS должен решить вашу проблему. Так как это недоступно, я в основном то, что вы сделали, но расширилось, чтобы решить, что было в образе.
@mouseleave и @mouseenter работают правильно. Вам просто нужно установить и использовать значение, чтобы скрыть / показать кнопку.
Я не верю, что QCollapsible поддерживает слот в заголовке (верно, если я ошибаюсь), поэтому может быть лучше использовать QToolbar вместе с QCollapsible и QList.
// Update the variables to toggle the display
new Vue({
el: '#q-app',
data: function() {
return {
listOpen: true,
hover: false
}
},
methods: {
toggleList: function() {
this.listOpen = !this.listOpen
},
addItem: function() {
this.$q.notify('clicked')
}
},
computed: {
hovering() {
return this.listOpen && this.hover
}
}
})
// Hide the existing collapse button (maybe there is a property for this)
div.q-collapsible.q-item-division.relative-position.q-collapsible-cursor-pointer>div>div.q-item.q-item-division.relative-position {
display: none
}
<!-- Create a div with the hoverover events -->
<div style="width:500px" @mouseleave="hover = false" @mouseenter="hover = true">
<q-toolbar>
<div class="on-left">
<q-icon name="bookmark">
<q-icon>
</div>
<q-toolbar-title v-show="!hovering">
Custom Dashboard
</q-toolbar-title>
<q-btn v-show="hovering" icon="add" label="Create" class="full-width" @click="addItem"></q-btn>
<q-btn flat icon="menu" @click="toggleList"></q-btn>
</q-toolbar>
<q-collapsible opened v-model="listOpen">
<div slot="side">test</div>
<q-list>
<q-item>
<q-item-side left>
<q-icon name="dashboard">
<q-icon>
</q-item-side>
<q-item-main>
dash 2
</q-item-main>
</q-item>
<q-item>
<q-item-side left>
<q-icon name="dashboard">
<q-icon>
</q-item-side>
<q-item-main>
dash 5
</q-item-main>
</q-item>
</q-list>
</q-collapsible>
</div>