PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

按钮自定义事件无法阻止事件冒泡的解决办法

管理员 2024-12-14
Fastadmin
8

如果我们在Bootstrap-table的行(td)中有添加一个.btn-testbtn的按钮,通常我们会在JS中使用

$(document).on('click', '.btn-testbtn', function(){    console.log(1234);    return false;});

给按钮绑定上事件,但是在这里会有一个问题就是,明明我们使用了return false;来阻止事件的冒泡,为什么仍然还会执行表格td的点击事件,造成当前行被选中。
分析Bootstrap-table的代码发现在1843行使用了

this.$body.find('> tr[data-index] > td').off('click dblclick').on('click dblclick', function (e) {});

来绑定事件,可以看到我们的按钮事件是绑定在document上的,而td的事件是直接绑定的。td作为a的父元素,优先级更多,事件被优先执行了,那现在我们该如何解决这个问题呢?办法就是提升.btn-testbtn按钮的优先级。
此时我们需要在表格主体内容渲染完成后再来绑定事件。

table.on('post-body.bs.table', function (e, settings, json, xhr) {    $(">tbody>tr[data-index] > td", this).off('click').on('click', "a.btn-dialog", function () {        console.log(123);        return false;    });});

这样即可提升td中.btn-testbtn按钮的事件优先级。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部