如下图,点击空白区域,只会触发html的默认事件
-
在main.js中,进行全局注册自定义指令
Vue.directive(‘click-outside’, {
bind: function (el, binding, vnode) {
el.clickOutsideEvent = function (event) {
// here I check that click was outside the el and his childrens
if (!(el == event.target || el.contains(event.target))) {
// and if it did, call method provided in attribute value
vnode.context
binding.expression
}
}
document.body.addEventListener(‘click’, el.clickOutsideEvent)
},
unbind: function (el) {
document.body.removeEventListener(‘click’, el.clickOutsideEvent)
}
})
-
在需要引用的组件上进行“ref”注册
ref 被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象进行注册。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例;
<elSelect ref="upSelect" ></elSelect>
3.添加自定义方法“v-click-outside”,其中 “this.$refs.upSelect.blur()” 的“upSelect”即为注册的ref
<elSelect
ref="upSelect"
v-click-outside="clickOutSide >
</elSelect>"
<script>
methods: {
clickOutSide() {
this.$refs.upSelect.blur();
</script>
在这个示例中,首先有两个选择框,一个是第一个选择框,另一个是根据第一个选择框的选项控制显示与隐藏的第二个选择框。如果选中的不是第一个选项,我们将 `showSecondSelect` 设置为 `false`如果选中的是第一个选项,我们将 `showSecondSelect` 设置为 `true`这样,通过监听第一个选择框的选项变化,您就可以动态地控制第二个选择框的显示与隐藏了。在 Element-UI 中,您可以通过。,从而显示第二个选择框。,然后根据选中的选项来。
逻辑是当表单中一个input输入之后才显示下拉框,反之提醒需要输入
百度很多,有人说是element ui 的版本,升级就行了,但是代码没有贴出来(代码真的很简单,但是还是有直观的代码好一些,我是渣渣T。T)
实现效果如下
重点是要给select附上 ref="xxxx"
在click函数中: this.$refs.xxxx.blur()
element-ui 中 el-select基础多选组件选择后不会自动关闭el-select mutiple组件下拉框选择后不会自动关闭
el-select mutiple组件下拉框选择后不会自动关闭
使用setTimeout + blur() 方法
<el-select v-model="value1" ref="selectAppType" multiple placeholder="请选择">
<el-option
v-for="item in option
升级了最新大享上。是发了概开程态间些告人屏果会区。版本的elementUI使用blur方法就好使微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就了@keyup.right.native="keyUpRight(2,scope.$index)"v-model="scope.row.unconfirmLineCopy">keyUpRight(col, row) {//最后一行if (r...
el-select 标签设置ref属性后直接绑定失去焦点事件blur,通过blur事件直接进行绑定隐藏下拉框方法,elementUI中提供了失去焦点的方法,其方法名也是blur。
代码如下:
今天来为大家分享一个小功能,首先看实现的效果吧~功能讲解:QLineEdit控件进行文本编辑,点击保存按钮后,隐藏编辑框和保存按钮,仅展示编辑内容,当鼠标点击空白处时,同样隐藏编辑框、隐藏保存按钮,但不存储编辑文本如果你要需要实现这样的功能,就继续往下看吧~三个控件:QLineEdit编辑框、QPushButton按钮、QLabel纯文本展示。默认QLabel控件是隐藏状态,只有点击保存按钮以及失去焦点后才会展示。此时需要响应两个消息。消息1:点击保存按钮
connect(ui.btnSave,