【modal】单页面多个modal显示隐藏后body穿透问题解决。

当在一个页面中使用多个modal时,前一个隐藏后,另一个显示出来,可能会发现鼠标滚轮滚动,body随着滚动,而不是modal。

网上的解决办法是给body添加modal-open的class,具体方法做下记录:

function modal_handler() {
        $(document.body).addClass("modal-open");
        $(document.body).css('padding-right','15px');
    }
      $('#modal_add').on('shown.bs.modal', function () {
          modal_handler();
     });
      $('#modal_add_client').on('shown.bs.modal', function () {
          modal_handler();
     });
    $('#modal_repairitem_list').on('shown.bs.modal', function () {
        modal_handler();
     });
    $('#modal_repairpart_list').on('shown.bs.modal', function () {
        modal_handler();
     });
    $('#modal_add_client').on('hide.bs.modal', function () {
        getClientOfEnterpriseAfterAddClient();
     });
    $('#modal_repairitem_list').on('hide.bs.modal', function () {
        
        $('#modal_add').modal({
            backdrop : "static"
        });
     });
    $('#modal_repairpart_list').on('hide.bs.modal', function () {
        
        $('#modal_add').modal({
            backdrop : "static"
        });
     });

具体资料参照modal的事件:

这里不管是使用隐藏还是显示触发事件一定要用带“n”的,就是modal彻底隐藏或打开后,给body添加相应class即可。

posted @ 2018-02-22 15:45  gwjtssy  阅读(477)  评论(0编辑  收藏  举报