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

javascript - 点击选择框,光标消失?

朱宏爽
2023-08-24
<template>  <div>    <!-- <textarea v-model="text" @click="textr"></textarea> -->    <div contenteditable="true" @click="textr" ref="editor" id="editor">      {{ content }}    </div>    <div class="flex" style="justify-content: center">      <el-button @click="toggleBold">加粗</el-button>      <el-button @click="toggleUnderline">下划线</el-button>      <el-button @click="toggleItalic">斜体</el-button>      <el-input        type="color"        v-model="color"        @input="changeColor"        style="width: 50px"      />      <el-select v-model="fontSize" @change="changeFontSize" id="fontSize" @click="handleClick">        <el-option  @click="handleClick"          v-for="data in fontSizeData"          :key="data.label"          :value="data.value"        >          {{ data.label }}        </el-option>      </el-select>      <el-select v-model="font" @change="changeFont" id="font">        <el-option value="Arial">Arial</el-option>        <el-option value="Verdana">Verdana</el-option>        <el-option value="Times New Roman">Times New Roman</el-option>      </el-select>      <el-button @click="insertImage">插入图片</el-button>    </div>    <div>{{ formattedText }}</div>  </div></template><script>export default {  data() {    return {      text: '',      htmlText: '',      isBold: false,      isUnderline: false,      isItalic: false,      color: '#000000',      fontSizeData: [],      fontSize: '17px',      font: 'Arial',      selectionStart: 0,      selectionEnd: 0    };  },  created() {    this.fontSizeData = []    for (let i = 17; i <= 40; i++) {      this.fontSizeData.push({ label: i, value: i })    }  },  mounted() {  },  methods: {    handleClick(event) {  // 阻止事件冒泡传递到编辑器中  event.stopPropagation();    // 其他处理逻辑  // ...},    toggleBold() {      document.execCommand("bold");    },    toggleUnderline() {      document.execCommand("underline");    },    toggleItalic() {      document.execCommand("italic");    },    changeColor() {      // Handle color change logic      document.execCommand("foreColor", false, this.color);    },    changeFontSize() {      // Handle font size change logic      document.execCommand("fontSize", false, this.fontSize)    },    changeFont() {      // Handle font change logic      document.execCommand("fontName", false, this.font);    },    insertImage() {      // Handle image insertion logic    },    textr(e) {            this.selectionStart = e.target.selectionStart      this.selectionEnd = e.target.selectionEnd      this.select = window.getSelection().toString()      console.lo    }  },  computed: {    formattedText() {      return ''    }  }};</script><style lang="scss" scoped>div[contenteditable="true"] {  border: 1px solid #cfcbcb;  width: 80%;  margin: auto;  margin-top: 30px;  margin-bottom: 10px;  border-radius: 10px;  box-shadow: 0px 0px 6px #efefef;  outline: none;  text-align: start;  padding: 10px;}div[contenteditable="true"]:focus {  border-color: #666666;}</style>

这份代码,现在有一个问题就是点击选择框,编辑器的光标就消失了,使用@click.prevent并不会成功
需要保留光标以及选中文本

共有1个答案

贝财
2023-08-24

我解决了,绑定v-on:blur="focus"

  然后focus里面this.$refs.editor.focus();
 类似资料:
  • 是否有可能设置IntelliJ IDEA,使我可以使用光标键进行列选择,类似于我在Notepad++、Visual Studio或FlashDeveloper中的操作。 例如,当我键入代码时,我几乎总是只通过使用键盘来完成导航。在前面提到的IDE中,我可以通过按住shift+alt,然后敲击将光标扩展到上面的行来快速选择代码块。然后,我可以按住Shift+Alt+Ctrl并点击或以快速跳过单词并选

  • 我正在开发一个使用JTree的java应用程序。我想归档的是,当我点击一个已经被选中的节点时,它会被取消选中。 我目前的解决方案是向jtree添加鼠标侦听器和树选择侦听器。但问题是,valueChanged只有在选择发生更改时才会被调用(而不是在两次选择同一节点时)。为了解决这个问题,我添加了一个布尔值,它指示是否第一次单击了节点,然后我在MouseRelease函数中处理取消选择。这是可行的,但

  • 本文向大家介绍解决IDEA鼠标点击光标变大问题,包括了解决IDEA鼠标点击光标变大问题的使用技巧和注意事项,需要的朋友参考一下 这一定是困扰刚开始使用idea工具同学的一个大问题。 三种情况会导致这种问题出现。 1、你不小心按了键盘上的insert按键 解决: 再按一次吧 2、你idea上面装了vim插件,会产生冲突的 解决: 赶紧卸载了 3、你setting里面设置的 解决: 看下图,去掉勾 补

  • 我使用量角器在角应用端到端测试。我试图点击选择框中的选项,但我有以下错误元素目前不可见,可能无法操纵。 我有这部分html: 在量角器测试中我有一行代码: 我想点击值为“草稿”的选项。你知道可能是什么问题吗?

  • 假设我们有一些s属于同一,当用户点击时,它被选中了。我想添加一个功能,当用户点击已经选中的时,它会被取消选中,即整个将不会选中。我已经搜索了提示使用的方法,method,clearSelection。但问题是,当用户单击已选择的JRadioButton时,它不会生成任何,而该事件是通过单击其他未选择的生成的。

  • 如问题所述,当选中标题中的“全选”复选框时,我已经可以选中gridview行中的复选框,当取消选中标题中的“全选”复选框时,取消选中gridview行中的复选框。我想做的是,当没有选中行中的所有复选框时,则不选中标题中的“全选”复选框,反之亦然(当选中行中的所有复选框时,则选中标题中的“全选”复选框)。 我该怎么做? 我已经做了我想要实现的,但是标题中的复选框开始影响(选中或取消选中),即使我只选