layer.open()利用代码实现伪阻塞

   今天在项目中遇到需要弹框处理的问题,,当用户点击某个单选框时,需要进行确认操作,,常规的情况下,因为layer.open()和layer.confirm()都是异步执行的, 在点击单选框之后单选框会立马选中, 弹框的效果心痛虚设.

后来想到在用户点击之前可以先对当前点击的按钮进行记录,,因为此时弹框是异步的,,直接返回false让单选框不选中,然后在对弹框条件进行判断,,满足条件让刚才记录的单选选中就好.思路就是这样,一实验,果然好使.

代码如下:..

$("input[name='SendDetailFormMap.SEND_TYPE']").click(function () {
    debugger
    var radio=$(this);  //用来记录被点击的按钮
    if (addCardFlag) {
        layer.open({
            title: '注意',
            content: '变更类型将会删除所有生成的类型,确定吗?'
            , btn: ['确认', '取消']
            , yes: function (index) {
                radio.prop("checked",true);   //点击确认,让按钮被选中
                //执行代码
                layer.close(index)
            }
        });
    }
    return false;   //返回false表示此按钮不会选中
})            

猜你喜欢

转载自www.cnblogs.com/xQlover/p/10790099.html