【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件

这篇具有很好参考价值的文章主要介绍了【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue中自定义按钮设置disabled属性后,异常触发click事件

项目中自定义按钮,使用a标签实现。设置disabled属性后,点击可以触发click事件。
由于各种原因,项目中并未使用成熟的第三方组件库,例如element-ui,ant-design。大多数组件是自己封装的,部分借鉴了原项目中jQuery、bootstrap实现。

按钮组件源码

列表中需要根据数据中某个变量的值,控制该数据是否可以进行删除操作。代码如下

<a class="btn btn-primary btx-xs" :disabled="_slot.isDelete" @click="deleteFunc(_slot)">删除</a>

当某一条数据中的isDelete为true时,按钮样式为禁用样式,且不能进行删除操作。
但是,此时点击显示禁用效果的按钮时,依然可以发起删除请求!!!

问题原因

首先说明: a标签 是没有disable 属性的 。故在a标签上添加disabled属性是无效的。
为什么按钮展示禁用效果?由于项目中糅合了jQuery和bootstrap的实现,给a标签添加了btn btn-primary btx-xs 类后,就会表现的像button,button是具备disabled的样式的。
所以该自定义的按钮组件添加禁用后,可以显示禁用的效果

解决方案

方案一:调整按钮组件使用的标签,用button替换

替换b标签为button后,即可正常禁用

<button class="btn btn-primary btx-xs" :disabled="_slot.isDelete" @click="deleteFunc(_slot)">删除</button>

方案二:不跳转标签,在删除方法中,添加处理逻辑

在删除方法中,判断isDelete参数是否为true,为true时直接return,不进行后续代码执行

deleteFunc(_row) {
	if(_row.isDelete) return
	//正常的删除逻辑
	...
}

方案三:设置a标签禁用,配合disabled与 pointer-events属性(不推荐)

既然项目中有使用到jQuery和bootstrap的实现,也可以通过jQuery获取对应的DOM元素,然后设置 pointer-events属性。
实现代码大致如下

<a class="btn btn-primary btx-xs custom_btn" :disabled="_slot.isDelete" @click="deleteFunc(_slot)">删除</a>

$(".custom_btn").attr("disabled",true); 
$(".custom_btn").css("pointer-events","none");

注意列表中根据返回值不同,会出现按钮禁用与否不同的情况,上述代码可能会将所有的按钮禁用,实际使用时需要注意区别

尾巴

点滴记录,汇聚江河文章来源地址https://www.toymoban.com/news/detail-688262.html

到了这里,关于【2023-09-01】vue中自定义按钮设置disabled属性后,异常触发click事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 互联网摸鱼日报(2023-09-01)

    36氪新闻 暑期剧综营销复盘:要么小单快返,要么长线绑定 ESG管理商「Wint」融资3500万美元、WeWork启动债务重组、北京规划机器人产业园|PropTech周刊73期 小米应用商店关闭红包专场,羊毛党遭遇痛击 暑期档的纪录与遗憾 5家大模型官宣上线,百度商汤智谱百川MiniMax领跑,传

    2024年02月10日
    浏览(36)
  • wangEditor5在vue中自定义菜单栏--格式刷,上传图片,视频功能

    复制粘贴修改一下直接用,也写了相关的注释。 ButtonMenu:https://www.wangeditor.com/v5/development.html#buttonmenu 注册菜单到wangEditor:自定义扩展新功能 | wangEditor insertKeys自定义功能的keys:https://www.wangeditor.com/v5/toolbar-config.html#insertkeys 自定义上传图片视频功能:菜单配置 | wangEditor 源码地

    2024年02月04日
    浏览(36)
  • SAP MM 定义物料类型的属性配置里的New entries按钮

    SAP MM 定义物料类型的属性配置里的 New entries 按钮     在 SAP 的很多后台配置界面上都有 New Entries( 新条目 ) 按钮,方便企业用户可以根据企业特有业务需求来增加新的配置条目。   事实上,并不是所有的配置界面里,都能很随意很方便的允许企业用户点击’ New Entries ’按钮

    2024年04月28日
    浏览(40)
  • FlashDuty Changelog 2023-09-21 | 自定义字段和开发者中心

    FlashDuty:一站式告警响应平台,前往此地址免费体验! FlashDuty 已支持接入大部分常见的告警系统,我们将推送内容中的大部分信息放到了 Lables 进行展示。尽管如此,我们用户还是会有一些扩展或定制性的需求,比如人工标记一个故障是否为误报。因此我们提供了 自定义字

    2024年02月08日
    浏览(41)
  • Win32窗体属性设置,取消最大最小化按钮,禁止调整大小

    使用GetWindowLong()获取窗体风格属性 取消风格WS_SIZEBOX 设置风格WS_SIZEBOX 使用SetWindowLong设置窗体风格属性 取消WS_SIZEBOX属性或WS_THICKFRAME属性都可以使窗体不可调整大小 例子 其它的属性设置 也可以在窗体创建时设置窗体属性,与属性异或操作是取消属性,与属性或操作是添加属

    2024年02月12日
    浏览(48)
  • Taro + vue3 + js + nutUI 框架中自定义tabbar的组件封装以及页面跳转的逻辑

    1.需求:   在H5 中需要封装一个自定义的tabbar 菜单跳转 通过nut-ui 进行二次封装 2. 注意点   H5 中原生的tabbar 在ios 中会出现问题 所以进行 封装tabbar 3. 代码操作 首先全部的代码  4.解析 tabList: 菜单的内容数组  根据自己菜单的数量 来决定 const tabList = reactivemenu[]([     {    

    2024年04月17日
    浏览(54)
  • Vue中Button按钮基础用法及参数属性

      带图标的按钮可增强辨识度(有文字)或节省空间(无文字)   其中,Icon 图标提供了一套常用的图标集合,直接通过设置类名为 el-icon-iconName 来使用即可。例如: 没有边框和背景色的按钮,可以使用 disabled 属性来定义按钮是否可用。 使用 el-button-group 标签来嵌套按钮   参数

    2024年02月16日
    浏览(36)
  • 557、Vue 3 学习笔记 -【常用Composition API(六)】 2023.09.05

    1. shallowReactive 与 shallowRef shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据,结构比较深,但变化时只是外层属性变化 === shallowReactive 如果有一个对象数据,后

    2024年02月10日
    浏览(38)
  • 改变按钮disabled时的默认样式

    微信小程序中,当设置button的disabled值为true时,即disabled=\\\"true\\\",表示按钮禁用,此时按钮会变成灰色并且不可点击。但是默认的disabled样式颜色可能不太合适,我们可以自己调整一下 在对应的wxss文件中加入以下代码即可,颜色自己定 下面来看看效果

    2024年02月13日
    浏览(41)
  • Vue3自定义按钮点击变色

     实现效果图: 默认选中第一个按钮,未选中按钮为粉色,点击时颜色变为红色  利用动态类名,当定义isChange数值和下标index相同时,赋予act类名,实现变色效果

    2024年02月11日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包