el-button双点击事件
时间: 2023-11-03 22:01:57 浏览: 122
el-button的双击事件可以通过添加自定义全局指令的方式实现。在main.js中加入以下指令,即可全局使用:
```javascript
Vue.directive('preventReClick', {
inserted(el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true;
el.style.cursor = 'not-allowed';
setTimeout(() => {
el.disabled = false;
el.style.cursor = 'pointer';
}, binding.value || 2000);
}
});
}
});
```
然后,在el-button标签中添加v-preventReClick指令即可:
```html
<el-button type="primary" @click="handleSave" v-preventReClick>保存</el-button>
```
相关问题
<el-table-column align="right" width="250"> <template #header> <el-input v-model="search" size="small" placeholder="Device to search" style="width: 50%;" /> <el-button circle> <el-icon> <Search /> </el-icon> </el-button> </template> <template #default="scope"> <el-button type="info" round size="small" @click="handleSearch(scope.row)">查看</el-button> <el-button size="small" round type="info" @click="handleDelete(scope.$index, scope.row)">卸载设备</el-button> </template> </el-table-column>解释代码
这是一个使用了 Element UI 组件库的表格组件 el-table-column,其中包含了两个模板: #header 和 #default。
#header 模板包含了一个 el-input 组件和一个 el-button 组件,用于实现搜索功能。el-input 组件通过 v-model 双向绑定了一个变量 search,el-button 组件包含了一个圆形按钮和一个搜索图标。该模板被用作表格列的表头。
#default 模板包含了两个 el-button 组件,用于实现查看和卸载设备的功能。这些按钮通过 @click 监听了两个方法 handleSearch 和 handleDelete,这些方法将在用户点击按钮时被调用。该模板被用作表格列的内容。
其中,scope 是一个作用域插槽对象,用于提供当前行的数据和索引等信息,可以在模板中使用。
<el-form-item v-for="(domain, index) in dynamicValidateForm.domains" :label="'口味' + (index+1)" :key="domain.key" :prop="'domains.' + index + '.value'" :rules="{ required: true, message: '域名不能为空', trigger: 'blur' }" > <el-select v-model="domain.name" clearable placeholder="请选择" @change="select()"> <el-option v-for="item in options" :key="item.username" :label="item.username" :value="item.username"> </el-option> </el-select> <el-input v-model="domain.value"></el-input> <el-button @click.prevent="removeDomain(domain)">删除</el-button> </el-form-item> <el-form-item label ="口味配置"> <el-button @click="addDomain">添加口味</el-button> </el-form-item>
这段代码是基于 ElementUI 的表单组件,在单中动态生成了多个口味配置项。每个口味配置项包含一个下拉框和一个输入框,以及一个删除按钮。
下面是代码的解释:
- `v-for="(domain, index) in dynamicValidateForm.domains"`:通过遍历 `dynamicValidateForm.domains` 数组来动态生成口味配置项,`domain` 表示当前遍历的元素,`index` 表示索引。
- `:label="'口味' + (index+1)"`:设置每个口味配置项的标签,使用了动态的索引。
- `:key="domain.key"`:为每个口味配置项设置唯一的键,确保 Vue 的虚拟 DOM 可以正确渲染。
- `:prop="'domains.' + index + '.value'"`:通过 `prop` 属性将表单项与数据模型绑定,以便进行表单验证。
- `:rules="{required: true, message: '域名不能为空', trigger: 'blur'}"`:设置验证规则,要求域名不能为空。
- `<el-select v-model="domain.name" clearable placeholder="请选择" @change="select()">`:下拉框组件,通过 `v-model` 双向绑定 `domain.name` 属性,当选择的值发生改变时会触发 `select()` 方法。
- `<el-option v-for="item in options" :key="item.username" :label="item.username" :value="item.username">`:下拉框选项,通过遍历 `options` 数组来生成选项。
- `<el-input v-model="domain.value"></el-input>`:输入框组件,通过 `v-model` 双向绑定 `domain.value` 属性。
- `<el-button @click.prevent="removeDomain(domain)">删除</el-button>`:删除按钮,点击后会调用 `removeDomain` 方法,并将当前口味配置项作为参数传入。
- `<el-button @click="addDomain">添加口味</el-button>`:添加口味按钮,点击后会调用 `addDomain` 方法,用于动态添加口味配置项。
希望以上解释对您有帮助!如果您还有其他问题,请随时提问。
阅读全文