请问如何让页面中所有的 button 被点击时 先执行我指定的函数 before(),最后执行 指定的函数 end()?

发布于 2022-09-01 05:05:10 字数 537 浏览 17 评论 0

我想实现这样的一个功能

页面中所有的 button 在执行 click 事件之前先执行我指定的函数 before,最后执行 指定的函数 end。

var IN_PROGRESS = {
    before: function (element) {
        $(element).attr('disabled', 'disabled');
    },
    end: function (element) {
        $(element).removeAttr('disabled');
    }
};

我现在是在每一个 button 的 click 事件里面都这样写

$(document).on('click', '.button 的 class', function () {
    IN_PROGRESS.before(this);

    ...不同情景下的代码...

    IN_PROGRESS.end(this);
});

有没有办法让这两个函数只写一次?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美人迟暮 2022-09-08 05:05:10

另一种方法
写个wrapper函数控制执行的流程

http://jsfiddle.net/larvata/suqvq330/

梦里兽 2022-09-08 05:05:10

监听事件都是顺序执行的,所以你只要在情景代码之前和之后分别绑定一个click 的监听函数就好啦。http://jsfiddle.net/2vzj20Lm/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文