当前位置: 首页 > 知识库问答 >
问题:

在不同的组件上同时使用focusout和onclick

孟谭三
2023-03-14

我正在尝试在Vue中实现从头开始的自动完成,但是我有问题在下拉菜单中选择选项。我正在启用(shownig)这个下拉列表,在点击输入或用户输入时。然后,在输入之外的焦点上,我想摆脱下拉列表。但是,这意味着当我选择dropdown中的内容时,我将关闭dropdown,而不是触发selectoption。如何同时保持V-ON:focusoutinput@click=“selectoption(option)”对下拉选项?到目前为止,使selectoption起作用的唯一方法是删除focusout,这不是我想要的...

<template>
  <div>
    <input
      type="text"
      v-on:input="enableDropdown"
      v-on:click="enableDropdown"
      v-on:focusout="disableDropdown"
    />
    <div class="options-dropdown" v-if="showDropdown">
      <div
        class="option"
        v-for="option in options"
        :key="option"
        @click="selectOption(option)"
      >
        {{ option }}
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      options: [
        "java",
        "c#",
        "c++++"
      ],
      showDropdown: false,
    };
  },
  methods: {
    enableDropdown() {
      this.showDropdown = true;
    },
    disableDropdown() {
      this.showDropdown = false;
    },
    selectOption($event) {
      console.log($event);
    },
  },
};
</script>

共有1个答案

劳仲渊
2023-03-14

如果当前的焦点选项-Dropdown中,则应签入DisableDropdown事件。

类似这样的东西

disableDropdown() {    
  this.showDropdown = this.$refs.optionsDropdown === document.activeElement;
}

这样,如果options-dropdown处于焦点状态,它将返回true(您还需要向其添加ref标记)。

 类似资料:
  • 我已经创建了导航抽屉活动,作为导航抽屉活动的更新新格式,根据新的Android架构,我用导航组件结构得到了它。 导航视图(NavigationView)与导航控制器(NavController)和导航用户界面(NavigationUI)的代码如下所示,当我单击任何导航项目时,它就是打开的片段。 这适用于nav\u host\u片段: 导航正在使用此 Android Studio已经为所有6个菜单创

  • 问题内容: 我正在将Enzyme与酶转json一起使用来对React组件进行Jest快照测试。我正在测试一个组件的浅表快照,该组件使用当前范围(例如)渲染一个显示字段,并允许两个组件选择一个值。这意味着我的快照包含了我传递给组件的s 以及它们自己解析的文本表示形式。在测试中,我使用创建了一些固定的日期。 当我在不同的时区中运行测试时,这会生成不同的快照 ,因为构造函数会在本地时区中创建日期。例如,

  • 问题内容: Eclipse是一个非常好的编辑器,我更喜欢使用它,但是缺少用于Eclipse的GUI设计工具。另一方面,NetBeans在GUI设计中确实很好用。 使用NetBeans进行GUI设计并将Eclipse用于同一项目上的其他所有内容,是否有任何提示,技巧或陷阱? 编辑: 我尝试了Maven,它似乎不起作用(太复杂,对于我的需求)。 问题答案: 使用Netbeans创建GUI。将Eclip

  • 我使用逆时针日食插件在leiningen Clojure项目。我需要从Eclipse运行一个repl,并使它加载一个不同于默认的leiningen项目。由于正在加载默认的类路径,因此在我想要使用的配置文件上的依赖项上会出现多个类路径错误,但在默认配置文件上不会。有人知道怎么做吗?

  • 问题内容: 我已经在系统中配置了网格并编写了测试脚本。我可以在任何指定的操作系统和任何浏览器上运行测试,但一次只能在一个操作系统和一个浏览器上运行测试,而不是同时运行所有操作系统和所有浏览器。这是我所做的。请告诉我如何配置它,以便它可以一次在已配置的操作系统中运行。 我的使用Java的脚本如下: Testng.xml: 问题答案: 阿迪亚 您要在不同或相同系统上运行并行测试的代码(testng.x

  • 有可能吗?如果是,使用消息并将消息发送到数据库的简单方式可能不安全。