首先说一下应用场景

el-input框为禁用状态时,点击取消禁用,并显示后方两个按钮,

点击绿色按钮保存input框当前值,失去焦点或点击红色框时恢复改变前的值

思路就是不在input上的失去焦点方法,而是手动调用失去焦点方法

注意mouseleave 事件不支持冒泡 。

mouseout 父元素内如果有子元素,鼠标离开子元素且未离开父元素,也会触发mouseout

<template><div><divstyle="display: flex; align-items: center"@mouseleave="handlemouseout"><el-inputref="elInputFocus":value="value"@input="elInputValue":disabled="disabled"autofocus></el-input><el-buttontype="success"icon="el-icon-check"circlesize="mini"v-if="!disabled"@click="handleConfirm"></el-button><el-buttontype="danger"icon="el-icon-close"circlesize="mini"v-if="!disabled"@click="handleClose"></el-button></div></div>
</template><script>
import { Input } from "element-ui";
export default {extends: Input,model: {prop: ["value"],},components: {},props: {value: {type: String,default: "",},disabled: {type: Boolean,default: false,},},watch: {disabled(val) {if (!val) {this.$nextTick(() => {this.$refs.elInputFocus.focus();});}else{this.flag=false}},value(newval, oldval) {this.oldValue = oldval;this.newValue = newval;},},computed: {},data() {return {oldValue: "",newValue: "",flag: false,};},methods: {handlemouseout(e){console.log(e);this.flag = truethis.handleBlur()},elInputValue(e) {this.$emit("input", e);},handleConfirm() {this.flag = true;this.$emit("input", this.newValue);this.$emit("confirm");},handleClose() {this.$refs.elInputFocus.blur();if (this.oldValue) {this.$emit("input", this.oldValue);}this.$emit("close");},handleBlur() {if (this.disabled && this.flag) {return;}this.$refs.elInputFocus.blur();if (this.oldValue) {this.$emit("input", this.oldValue);}this.$emit("blur");},},created() {},mounted() {},
};
</script>
<style lang="scss" scoped>
.el-input {margin-right: 10px;
}
.el-button {width: 26px;height: 26px;
}
</style>

input失去焦点事件和点击事件冲突的解决思路相关推荐

  1. Android 中触摸事件与点击事件分析

    触摸事件 两种检测触摸事件的方式: 设置触摸监听  setOnTouchListener 返回 true: 表示消费事件 , 可以检测到 down/move/up 事件 返回 false: 不消费事件 ...

  2. ListView的长按事件和点击事件冲突的解决办法

    需求是这样的:listView中点击item 跳转到一个activity,长按item可以对这条item进行删除操作,在删除前会弹出dialog(确认删除对话框). 但是在开发过程中发现,当长按某个i ...

  3. Android 系统(218)---Android的事件分发机制以及滑动冲突的解决

    Android的事件分发机制以及滑动冲突的解决 声明:  本文主要涉及VIew的事件分发与滑动冲突的解决,关于View的事件分发流程的部分内容参考自:  Android事件分发机制详解:史上最全面.最 ...

  4. input中blur失去焦点事件与点击事件冲突的解决方法(vue)

    一:前言 最近在做百度的下拉框时遇到一个问题就是在点击下拉框时,input失去焦点,从而是的下拉框消失,使得点击事件没有用,因此查阅资料得到答案. 二:步骤 遇到一个问题,就是输入框input的blu ...

  5. input中blur失去焦点事件与点击事件冲突

    场景: 当在输入框里输入手机号的时候,输入框高亮,并且关闭按钮显示,input失焦时关闭按钮隐藏 现象: 遇到的问题是,当我们点击关闭按钮清空input框数据时,发现只是关闭按钮隐藏了,数据并没有清空 ...

  6. JavaScript_input框中失去焦点事件和点击事件冲突的解决办法

    前言:   在开发的过程中,我们经常会有搜索的需求,其中就涉及到的知识点就包括了今天我们要说的两个重要"角色",input框和展示列表的li. 需求:   当我们在input框中输 ...

  7. adb inputswipe shell_[Android]通过adb shell input上报命令模拟屏幕点击事件【转】

    常用的 input上报命令: input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 input keyevent 4 键盘事件,4 为返回 input tap 100 ...

  8. [Android]通过adb shell input上报命令模拟屏幕点击事件

    常用的 input上报命令: input text 1234 实际向界面注入1234文字,有输入框,能明显看到效果 input keyevent 4 键盘事件,4 为返回 input tap 100 ...

  9. li的鼠标移入移出事件和点击事件分别实现为当前li添加样式,删除其他li样式...

    li.jsp(需要提前导入jquery.min.js  地址:http://www.cnblogs.com/zhouerba/p/7358069.html  ) 鼠标移入:当前li变色,其他li恢复原 ...

  10. 解决百度地图移动端(微信浏览器等)拖拽事件和点击事件冲突的BUG

    在手机端,如果启用了百度地图的拖拽,那么部分手机上点击事件无法触发,无法获取点击位置的坐标,除非禁用拖拽的功能. 但如果禁用拖拽后,用户体验就很差,所以以下代码可以直接解决问题,亲测可用,如有疑问可以 ...

最新文章

  1. flutter离线源码安装包最新版本下载地址
  2. 王炸养成记——看Linux 25周年发展变化
  3. java finally块_Java中的finally块是什么?
  4. python 会增加内存吗,在Python中增加内存限制?
  5. Python进行数据分析—可视化之seaborn
  6. mac vim python3_VIM学习笔记 编译源码(Compile Code)-Python
  7. linux依赖包在哪个目录,命令-Linux cmd在jar中搜索类文件,而与jar路径无关
  8. BeanFactory 简介以及它 和FactoryBean的区别
  9. 吴恩达深度学习2.1练习_Improving Deep Neural Networks_initialization
  10. Ubuntu 14.04 安装Octave
  11. android4.0以上,利用耳机接听键实现自动接听,部分手机失败原因+解决方法(比如华为P7)
  12. redis 菜鸟教程
  13. 基于社交网络分析算法(SNA)的反欺诈(二)
  14. 离开谷歌回归斯坦福,“AI女神”李飞飞新动向揭晓
  15. linux上咋修复windows引导,linux rescue 修复引导 与linux下修复windows引导
  16. 如何衡量一个量化策略的好坏
  17. linux输入密码后提示密码错误,用sudo命令没有提示输入密码,而是出现sudo:3次错误密码尝试的解决...
  18. ROS下安装和运行SVO数据包和实时测验的过程记录
  19. 简要的可行性分析报告(1)
  20. python3 列表长度_3种在Python中查找列表长度的简便方法

热门文章

  1. Error creating bean with name ,Unsatisfied dependency expressed through field
  2. 用16进制表示的颜色代码表
  3. 爱好和兴趣爱好和兴趣
  4. ae学习笔记(粒子爱心教程笔记)
  5. [论文阅读] Semi-supervised Semantic Segmentation via Strong-Weak Dual-Branch Network
  6. 内部碎片和外部碎片的理解
  7. 内部碎片和外部碎片的区别
  8. easy-ui datagrid弹框显示选中行数据
  9. 计算机基础知识 进制转换,计算机基础之进制转换详解
  10. C语言a++ ++a