文章目录

  • 前言
  • 解决办法
    • 给日历中的`tbody`元素添加点击事件:
  • 其他思路
    • watch监听日历绑定数据变化实现更新数据:
    • 给上个月,下个月,今天三个按钮添加点击事件:

前言

前言:最近做个酒店管理系统,需要点击日历选择日期查询当天的酒店起价,这时我才用了element的日历(结合了element的对话框)。
功能需求:点击价格日历打开日历对话框,点击日期更新酒店起价并关闭对话框,点击下个月,上个月以及今天只是更新日历而不关闭对话框和请求新起价。

此过程我一路探索,都找不到比较好的办法,就只能退而求次,这里我才用的是给日历中的tbody元素添加点击事件,有兴趣可以看后面我其中想到的一些办法,只是我没实现出来。


解决办法

给日历中的tbody元素添加点击事件:

代码
日历:

<el-dialog title="价格日历" :visible.sync="dialogTableVisible">      //dialogTableVisible控制是否打开日历对话框<el-calendar v-model="priceTime">   //日历时间数据保存在priceTime中</el-calendar></el-dialog>

点击打开日历对话框事件代码:

//打开价格日历
openDate(){this.dialogTableVisible = true            //打开日历对话框this.$nextTick(() => {                      //给点击日历绑定绑定监听事件,效果:只有点击日期才去请求新价格并关闭弹窗,点击下个月,上个月等等不变化console.log('aaa')var prevBtn = document.querySelector('tbody')        //给tbody添加事件,也就是日期那部分prevBtn.addEventListener('click',() => {this.dialogTableVisible = false                 //点击关闭日历对话框this.reqHotelPrice()                             //请求新的酒店起价})})
},

其他思路

watch监听日历绑定数据变化实现更新数据:

watch: {priceTime(newval,oldval){this.dialogTableVisible = falsethis.reqHotelPrice()}
},

虽然每次在日历选择日期都会触发关闭日历对话框和查询新的酒店起价。
我无法解决的地方:点击按钮上个月,下个月,今天等都会触发日历数据更新从而触发关闭日历对话框和查询新的酒店起价,这给用户的体验不好。


给上个月,下个月,今天三个按钮添加点击事件:

通过属性选择器给这三个按钮添加点击事件(给当月的日期添加点击关闭日历对话框并请求新的起价),我虽然可以给三个按钮添加点击事件,但在该点击事件中给当月日期添加点击关闭日历对话框并请求新的起价事件不起作用。

this.$nextTick(() => {// 点击上个月let prevBtn1 = document.querySelector('.el-calendar__button-group .el-button-group>button:nth-child(1)');prevBtn1.addEventListener('click',() => {consolo.log('上个月');})// 点击今天let prevBtn2 = document.querySelector('.el-calendar__button-group .el-button-group>button:nth-child(2)');prevBtn2.addEventListener('click',() => {consolo.log('今天');})// 点击下个月let prevBtn3 = document.querySelector('.el-calendar__button-group .el-button-group>button:nth-child(3)');prevBtn3.addEventListener('click',() => {consolo.log('下个月');})
})

Element日历区分上个月下个月等按钮和日期点击事件相关推荐

  1. jQuery动态添加按钮,绑定点击事件失效

    jQuery动态添加按钮,绑定点击事件失效 因为需求需要给页面动态添加按钮并绑定点击事件进行操作, 但是发现绑定的点击事件失效. 原因分析: append中的节点是在整个文档加载完之后开始添加,因此页 ...

  2. 更简单的方法实现el-calendar日历组件中点击上个月、今天、下个月按钮时的点击事件

    网上查el-calendar相关的按钮点击事件文章,清一色都是在mounted挂载阶段通过document.querySelector绑定类名添加点击事件. 我想说为啥要弄得这么麻烦?el-calen ...

  3. IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题

    在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的:    这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需 ...

  4. datatables 自定义按钮及响应点击事件

    按钮 {"targets": -1,"class": "but_xq","data": null,"bSort ...

  5. javascript动态生成按钮并绑定点击事件

    前一个多月公司的前端开发人员离职,公司一直在招前端,基本上每天都有几个来面试的人,就这个面试频率,也才招了一个多月才招到.绝大部分都是死在了一道上机面试提上.题目很基础,但也很考基本功,基本上才3%左 ...

  6. android按钮防止重复点击事件,实例详解Android解决按钮重复点击问题

    为了防止用户或者测试MM疯狂的点击某个button,写个方法防止按钮连续点击.具体实例代码如下所示: public class BaseActivity extends Activity { prot ...

  7. pyqt按钮带参数点击事件

    1.使用lambda修饰符,连接信号 self.pushButton.clicked.connect(lambda:self.buttonClicked(1,1)) 2.穿入什么参数都可以 def b ...

  8. element 控件 tabel中增加el-switch 并绑定点击事件

    先看官网 <el-switchv-model="value"active-color="#13ce66"inactive-color="#ff4 ...

  9. element 日历组件应用相关的问题

    1.使用element日历组件会自带按钮组,要实现切换时间的时候去获取相关月份的排班数据,但是按钮组并不存在于日历组件中 <el-calendar v-model="value&quo ...

最新文章

  1. python之父叫什么-Python之父谈Python的未来形式
  2. MVC中提交表单的4种方式
  3. C语言试题二十四之编写一个函数unsigned function(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。
  4. Gateway Sentinel 做网关降级/流控,转发header和cookie
  5. Gitlab自动触发Jenkins构建项目
  6. 蓝桥杯小朋友排队java_1215. 小朋友排队
  7. 使用JS制作一个鼠标可拖的DIV(二)——限制区域移动
  8. CSDN博客 不登录不能复制粘贴
  9. 【Unity】出现NullReferenceException:Object reference not set to an instance of an object.的原因总结
  10. 阿里巴巴的图标库 -------------本地使用
  11. 计算机网络_实验5_集线器与交换机对比
  12. PHP算法之杨辉三角
  13. 直线拟合fitLine函数的用法
  14. pspice仿真库DC电源设置请教
  15. pca , nmds , pcoa 图添加分组的椭圆
  16. 背后的力量 | 推动智慧校园建设 华云数据帮助昆明卫生职业学院重塑IT架构
  17. Redis性能优化方案总结
  18. 欢乐连连看小游戏制作
  19. Windows DLL编程中的导入导出:__declspec(dllimport) ,__declspec(dllexport) ,
  20. 红米1线刷救砖教程V5版(移动联通适用,线刷包永久有效)

热门文章

  1. java单线程和多线程的区别
  2. [iOS 16进制颜色转换RGB](转)
  3. 电子商务环境下快递业的发展
  4. 一小时了解自动化测试
  5. HTTP三次握手四次挥手简记
  6. 记录Keil5后缀.uvprojx工程文件打不开的解决方法
  7. matlab 朴素贝叶斯模型 代码及其案例
  8. MAYA联机网络渲染映射版
  9. linux内核 noreturn,读《ARM Linux 内核源代码剖析》.......第13章 setup_processor()
  10. MimeMessageHelper发送邮件附件名过长显示dat