猿问

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

我自己封装了一个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中打印的次数会随着点击次数不断递增!


函数式编程
浏览 390回答 1
1回答

ABOUTYOU

你的<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>&nbsp; &nbsp; $('#test_button').click(showConfirm('测试','测试内容',true,function(){&nbsp; &nbsp; &nbsp; &nbsp; console.log(1);&nbsp; &nbsp; },function(){&nbsp; &nbsp; &nbsp; &nbsp; console.log(2);&nbsp; &nbsp; }));</script>这样你的button只注册一次点击事件即可。希望能帮助到你。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答