一、modal使用:
1.1、登錄bootstrap官網,點擊下載Bootstrap
1.2、導入對應的樣式文件css
1.3、導入對應的js,需要導入bootstrap.js或者bootstrap.min.js文件,bootstrap的前提是jquery,所以我們要在導入bootstrap.js前面導入jquery.min.js
對應導入代碼:
1.4、從官網找到一個案例使用:
創建模態框(Modal)
開始演示模態框二、modal打開:
2.1、靜態打開:通過data屬性打開隱藏模態框
設置按鈕button的data-toggle:“modal”(以模態框的形式打開),data-target:"#myModal"(設置爲modal的id)
2.2、動態打開:以jquery代碼爲例
$("#myModal").modal({
remote:“test/test.jsp”;//可以填寫一個url,會調用jquery load方法加載數據
backdrop:“static”;//指定一個靜態背景,當用戶點擊背景處,modal界面不會消失
keyboard:true;//當按下esc鍵時,modal框消失
})
remote處可以填寫jsp路徑或者html路徑,用來給modal框注入內容
2.3、動態打開事件:
在modal框加載同時,提供幾個方法用來控制modal框
$("#myModal").on(“loaded.bs.modal”,function{
//在模態框加載的同時做一些動作
});
$("#myModal").on(“show.bs.modal”,function{
//在show方法後調用
});
$("#myModal").on(“shown.bs.modal”,function{
//在模態框完全展示出來做一些動作
});
$("#myModal").on(“hide.bs.modal”,function{
//hide方法後調用
});
$("#myModal").on(“hiden.bs.modal”,function{
//監聽模態框隱藏事件做一些動作
});
2.4、解決remote只加載一次問題:
我們在使用js動態打開modal框使用remote請求數據,只會加載一次數據,所以我們需要在每次打開modal框錢移除節點數據。
解決方案:
$("#myModal").on(“hiden.bs.modal”,function{
$(this).removeData(“bs.modal”);
});
2.5、解決事件監聽多次:
第一次打開modal框正常,第二次,第三次,第n次打開就有可能會出現事件監聽多次的奇怪問題(尤其是多個modal窗口疊加,出現這種問題的機率更高,我大致判斷有可能是組件bug),所以無奈之舉的辦法,只適合應急使用:就是強行讓他只調用監聽一次
int count = 0 ;
$("#myModal").on(“loaded.bs.modal”,function{
if(++count == 1){
//調用你需要的方法
}
//在模態框加載的同時做一些動作
});