位置: IT常识 - 正文

给饿了么Radio 单选框添加点击事件(vue2)(饿了么指定单)

编辑:rootadmin
给饿了么Radio 单选框添加点击事件(vue2) 前言

推荐整理分享给饿了么Radio 单选框添加点击事件(vue2)(饿了么指定单),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:饿了么单聊,饿了么指定单,饿了么怎么设置单量,饿了么接单提示音怎么设置,饿了么接单提示音怎么设置,饿了么指定单,饿了么单聊,饿了么单聊,内容如对您有帮助,希望把文章链接给更多的朋友!

最近有一个这样的需求,当点击不合格时打开一个弹窗进行不合格数据的录入。问题点在于当你想对不合格数据进行修改时,点击不合格是没有反应的;因为Radio 单选框只提供了一个change 事件

解决

这里说明一下,项目是vue2的项目,写这个demo是vue3的项目。但是两者的情况有些不一样。

问题1

vue2

<el-radio-group v-model="result"> <el-radio :label="0" @click.native="radioClick">不合格</el-radio> <el-radio :label="1">合格</el-radio></el-radio-group>

vue3

<el-radio-group v-model="result"> <el-radio :label="0" @click="radioClick">不合格</el-radio> <el-radio :label="1">合格</el-radio></el-radio-group>

在这里也发现了我的一个误解,@click 本质是一个自定义事件,只是与原生的点击事件功能上是一致的。 在vue2中有这样一句话 所以在vue2中直接@click是不生效的,因为Radio 单选框没有提供这样的事件;但是加上.native修饰符后这就是原生事件了,因此点击事件会生效。

在vue3中直接使用@click生效是因为vue3中移除了.native修饰符,@click默认就是原生的点击事件

问题2给饿了么Radio 单选框添加点击事件(vue2)(饿了么指定单)

点击事件解决了,但是该事件每次都会被触发两次。原因是因为el-radio被封装了好几层,根元素不是input,解决是在后面添加prevent

//vue2 <el-radio :label="0" @click.native.prevent="radioClick">不合格</el-radio> //vue3 <el-radio :label="0" @click.prevent="radioClick">不合格</el-radio>

至于为什么使用prevent可以解决这个问题,暂时没有找到原因

问题3

点击问题解决了,触发两次解决了,但是加上prevent后,单选框是无法被选中的。 解决:手动进行赋值

const radioClick = () => { result.value = 0; console.log('点击了', result.value);};

最终方案

看上面的动图其实可以看到还是有点小问题的,手动赋值后选中状态多了一圈,要在旁边空白地方点击一下才能变成正常的选中状态。如果不介意的话,这样就可以了,比较很简单。

还有一种解决方案,指令(yyds)

vue2

directives: { radioClick: { bind(el,binding) { // console.log(el); console.log(el.getElementsByClassName('el-radio__original')[0].getAttribute('value')); if(el.getElementsByClassName('el-radio__original')[0].getAttribute('value') == 2) { el.getElementsByClassName('el-radio__original')[0].addEventListener('click',() => { console.log('点击了',binding.value); }); } } } },

vue3

const vRadioClick = { mounted: (el, binding) => { if (el.getElementsByClassName('el-radio__original')[0].getAttribute('value') == 0) { el.getElementsByClassName('el-radio__original')[0].addEventListener('click', () => { console.log('点击了', binding.value); }); } }};

补充

本来以为上面就解决了,原来小丑竟然是自己。在指令中是无法获取到this 的,查了下需要借助指令的第三个参数

vnode.context 就是我们需要的 this

本文链接地址:https://www.jiuchutong.com/zhishi/296043.html 转载请保留说明!

上一篇:ieee下载文献的方法(ieee下载论文)

下一篇:【微信小程序】WXSS和全局、页面配置(微信小程序制作)

  • 企业个人所得税税率表2023
  • 企业增值税会计科目
  • 网银转账往来款
  • 金税盘没有报税管理怎么把发票明细怎么导出
  • 研发投入和研发支出的关系
  • 调整以前年度递延收益确认收入账务处理
  • 佣金可以入账吗
  • 个人销售自产农产品 个人所得税
  • 用于连续生产的消费税计入
  • 给客户提供的价值
  • 出售投资性房地产的会计处理
  • 小规模纳税人怎么查询
  • 本年利润是负数的会计分录
  • 可供出售金融资产和长期股权投资
  • 小规模纳税人可以自己开专票吗
  • 印花税的收取
  • 没有签订劳动合同员工离职怎么处理
  • 简易计税的劳务公司员工社保可以抵扣增值税吗
  • 应向客户收取的出租包装物租金
  • 企业的其他业务收入包括
  • 上月未抵扣进项增值税
  • 个体户没有进项票怎么开销项发票
  • 工商年报社保需要多少钱
  • Mac怎么禁用icloud
  • 主营业务成本算损益类科目吗
  • 退税账务处理分录
  • 股利分配账务处理
  • linux acl配置命令
  • centos停止发布
  • 招财树的养殖方法
  • 增值税价外费用是什么意思
  • php枚举类
  • 工业企业应付账款周转率多少合适
  • 企业在境外发生业务国外缴税后国内怎么做
  • react的高阶组件理解
  • php和mysql的联合使用
  • 蓝桥杯真题c语言
  • 事业结余对应政府会计哪个科目
  • 分页浏览是什么意思
  • 商业流通企业
  • 支付水电费如何做账务处理
  • 软件和硬件如何分开
  • 购物赠品的处理流程
  • 应收利息缴纳什么税
  • 个人所得税申请退税多久能到账
  • 长期股权投资收益要交税吗
  • 临时工工资计入什么费用
  • 简易征收的项目进项税可以抵扣吗
  • 房屋维修基金交给哪个部门
  • 国有独资企业董事会成员组成规定
  • 企业处置子公司
  • 营改增后进项税额转出
  • 工厂厨房厨具
  • 购买金税盘未抵税怎么办
  • 预付款充值发票
  • 发票要不回来怎么办
  • 纳税申报怎么查
  • 其他费用包括哪些内容
  • 打造安全稳定
  • w10强制更新怎么关闭
  • 2019谷歌浏览器
  • macbook air xcode开发
  • 进去界面黑屏
  • win10怎么将任务栏图标从长条改成圆形
  • win8找不到恢复环境怎么恢复出厂设置
  • freebsd服务器怎么样
  • opengl函数
  • 每日十条简短新闻
  • python的dict类型
  • JavaScript cookie 跨域访问之广告推广
  • javascript自动化
  • c语言node定义
  • android网络编程题库
  • javascript基础教程教材答案
  • javascript面向对象编程指南 pdf
  • jquery数据绑定
  • 苏州昆山税务局电话号码
  • 事业单位大额资金拨付需要什么报账材料
  • 广州地税微信公众号
  • 普宁市离揭阳市有多远
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设