Bootstrap Modal 關閉時引起的問題(滾動條和樣式殘餘)

我在使用bootstrap3.0時,用了他的modal 功能打開一個模態框時,在關閉modal時,bootstrap沒有清除它打開的樣式,有餘留樣式,造成我的頁面的滾動條消失了(打開modal前是有滾動條的),代碼如下:

        ....省略部分代碼

        $("#setRatioModal").modal("hide");

        showRation();//保存後,關閉modal後重新加載部分頁面(包括modal的html)

        ....省略部分代碼

打開前Dom如下:


關閉modal,並重新加載html後,Modal沒有正常關閉,有殘餘樣式和dom結構,如下:

後來詢問前端的同事才知道,js雖然單線程往下執行,但當遇到樣式渲染、dom操作時,就有同步異步的問題,也就是說,當$("#setRatioModal").modal("hide");執行完,但有可能modal('hide')裏面的樣式操作,dom操作還沒有渲染完,showRation()方法就把頁面刷新了或者加入了新的html,頁面重新渲染,而modal可能還沒有執行完樣式刪除,modal有樣式殘餘,就出現了這個問題。

解決辦法:

1.手動清除殘餘(這個有點土)

$(".modal-backdrop").remove();
$("body").removeClass('modal-open');


2.使用setTimeout函數調用後面的刷新代碼

$("#setRatioModal").modal("hide");

setTimeout(function(){//延時加載頁面
      showRation();
},500);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章