bootstrap 中的 modal 模糊框如何获取点击按钮事件?

发布于 2022-09-06 23:22:56 字数 997 浏览 15 评论 0

我自己封装了一个js函数!
使用起来有些问题,我设定了callback,会随着点击次数的增加,执行次数也会增加,不知道是什么原因!

js封装的函数

showConfirm(title , content , showCancel , success , cancel)
    {
        showCancel = showCancel === false ? showCancel : true;
        $('#showModal .modal-title').text(title);
        $('#showModal .modal-body').text(content);
        if(!showCancel)
        {
            $('#showModal .cancel').hide();
        }

        $('#showModal .cancel').eq(0).click(cancel);//取消按钮DOM
        $('#showModal .success').eq(0).click(success);//确定按钮DOM
        $('#showModal').modal();
    }

前端调用

<button class="btn btn-info btn-sm" onclick="test()">test</button>

<script>
        function test()
        {
            pages.showConfirm('测试','测试内容',true,function(){
                console.log(1);
            },function(){
                console.log(2);
            })
        }
    </script>

console.log中打印的次数会随着点击次数不断递增!

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

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

发布评论

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

评论(1

旧梦荧光笔 2022-09-13 23:22:56

你的<button>里用的是onclick="test()",也就是每点击一次,都会去执行test()函数,然后每次test()执行的内容showConfirm当中都会去注册一次.cancel和.success的click事件——输出1|2,也就是每点击一次,就多注册一次,然后多输出一次1|2。你可以去掉button当中的onclick="test()",然后这么写:

<button class="btn btn-info btn-sm" id="test_button">test</button>

<script>
    $('#test_button').click(showConfirm('测试','测试内容',true,function(){
        console.log(1);
    },function(){
        console.log(2);
    }));
</script>

这样你的button只注册一次点击事件即可。
希望能帮助到你。

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