首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Quasar,在鼠标事件时,显示列表

使用Quasar,在鼠标事件时,显示列表
EN

Stack Overflow用户
提问于 2021-10-06 14:25:26
回答 1查看 277关注 0票数 0

我正在通过quasar框架做web开发。我想创建一个鼠标事件。我希望在鼠标经过事件时显示以下菜单,而不是鼠标单击事件。我制作了这个codepen作为参考,但我的代码在我的网站上不起作用。帮助。摘录自我的一些代码。我想知道的是vue3.0中的mouseover事件是如何工作的?

这是我的代码

代码语言:javascript
复制
<!-- html -->
<template>
  <q-btn
    label="MyBtnName"
    @mouseover="menuOver = true"
    @mouseleave="menuOver = false"
  >
    <q-menu v-model="menuOpen">
      <q-list>
        <q-item
          @mouseover="listOver = true"
          @mouseleave="listOver = false"
           >
          <q-item-section>
            {{ MyItems }}
          </q-item-section>
        </q-item>
      </q-list>
    </q-menu>
  </q-btn>
</template>
代码语言:javascript
复制
// script
import { ref } from 'vue';
import { debounce } from 'quasar';

export default {
  setup() {
    return {
      menuOpen: ref(false),
      menuOver: ref(false),
      listOver: ref(false),
    };
  },
  methods: {
    debounceFunc() {
      debounce(() => {
        this.checkMenu();
      }, 100);
    },
    checkMenu() {
      if (this.menuOver || this.listOver) {
        this.menuOpen = true;
      }
    },
  },
  watch: {
    mouseOver() {
      return this.debounceFunc();
    },
  },
};
EN

回答 1

Stack Overflow用户

发布于 2021-10-06 14:33:03

看起来问题是,你试图向一个不接受这些事件的元素添加事件。根据Button | QBtn API上的quasar文档,您只能使用click-event。

为什么它在你的codepen中起作用?与q-btn不同的是,您在codepen中使用的div已经显示出来了。将呈现q-btn,因此所有未考虑的内容,如@mouseover="menuOver = true",都将丢失。

简单的解决方案?只需构建您自己的按钮作为divbutton元素,就像您已经在代码中所做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69467590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档