91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Bootstrap模態窗中怎么從遠程加載內容

發布時間:2021-06-21 11:40:53 來源:億速云 閱讀:290 作者:chen 欄目:web開發

這篇文章主要介紹“Bootstrap模態窗中怎么從遠程加載內容”,在日常操作中,相信很多人在Bootstrap模態窗中怎么從遠程加載內容問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Bootstrap模態窗中怎么從遠程加載內容”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Bootstrap的Modal這個模態窗組件還是很好用的,但在開發的過程中模態窗中的內容大部分都是從后端加載的。要實現模態窗的內容是從后端加載話,常用的實現方式有2種。它們是:

(1)Modal里面套一個Iframe,通過Iframe的src去加載遠程的內容。這種方式的缺點是這個模態框的寬度和高度不好調,而且把寬度和高度設置成固定值,就破壞了bootstrap的響應式布局了。

(2)使用Modal的remote參數去加載遠程的內容。這種方式有些小bug(后面會介紹解決方案),不過這種方式沒有上一種方式需要手動設置的寬度和高度的麻煩。

個人比較喜歡第2種方式,這樣就介紹下使用remote的方式。

本次使用的bootsrap的版本是 3.3.7

一、頁面的準備

(1)主頁面

主頁面這里,先放置好一個模態框,不過模態框里面的內容是空白的。后續遠程加載后的數據就會自動填充到class="modal-content"這個p里面。準備好如下html代碼:

<!-- 彈出模態窗口--> 
<div class="modal fade" style="top:13%;"  tabindex="-1" role="dialog" id="showModal">
  <div class="modal-dialog" role="document">
      <div class="modal-content">
<!-- 內容會加載到這里 -->
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

放置好模態窗口后,我們可以在主頁面上放一個按鈕來觸發這個模態窗口的顯示,這個按鈕的html代碼如下:

<button type="button" id="addBtn" class="btn btn-primary">新增用戶</button>

按鈕和模態窗好后,我們需要給這個按鈕綁定點擊事件,點擊后顯示模態窗口并從遠程加載數據。js代碼如下:

    $("#addBtn").click(function(){
        // 打開模態框
        $("#showModal").modal({
            backdrop: 'static',     // 點擊空白不關閉
            keyboard: false,        // 按鍵盤esc也不會關閉
            remote: '/sys/toAddUser'    // 從遠程加載內容的地址
        });
    });

主頁面的內容就是這些,注意:開始的那些引入bootstrap相關的代碼我沒貼,使用時需要自己引入好。

(2)待加載到模態框里面的頁面準備

首先,我先說下,這個頁面里面不需要引入和任何的js和css。因為這個頁面加載到模態框里面后,就相當于主頁面上的一部分了。有點像主頁面把它給動態導入的感覺,它可以訪問主頁面的任何內容。這個頁面可以看成是class="modal-content" 這個p內容,加載后就把這些html代碼嵌入到里面去了。因此寫這個頁面時,我們可以去bootstrap官網copy一個模態框的代碼,把里面的內容那塊抽取出來做我們這個遠程頁面是最適合的了。 我準備的代碼如下:

<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h5 class="modal-title">添加用戶</h5>
</div>
<div class="modal-body">
<form id="addForm">
<div class="form-group">
<label for="account">賬號</label>
<input type="text" class="form-control" id="account" name="account" placeholder="賬號(用于登錄)">
</div>
<div class="form-group">
<label for="username">用戶名</label>
<input type="text" class="form-control" id="username" name="username" placeholder="用戶名">
</div>
<div class="form-group">
<label for="password">密碼</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" id="resetBtn" class="btn btn-default" >重置</button>
<button type="button" id="saveBtn" class="btn btn-primary">提交</button>

</div>

二、后臺的介紹

其實后臺代碼沒什么介紹的,當點擊主頁面的按鈕后,后臺接收到這個請求,把準備好的頁面返回過去就ok。用SpringMvc一下就實現。故不介紹。

三、最終效果

通過點擊主頁面的新增按鈕,彈出了模態框,并把遠程的頁面加載到了遠程模態框里面。

Bootstrap模態窗中怎么從遠程加載內容

四、解決下小bug

(1)經過測試,發現這個模態窗的內容重后臺加載一次后,再關閉這個模態窗再打開時不會再從后臺加載。

(2)這個模態框里面的內容在加載后就留在了主頁面上,主頁面可以直接訪問。這樣容易出現問題,如:主頁中有個dom元素的id和模態框里面的dom元素的id相同,這就容易出bug,我們希望模態窗關閉后直接把模態窗里面的內容都清除掉。

解決上面2個bug的方案見下面這段js代碼,其實是監聽了模態窗的關閉

        // 每次隱藏時,清除數據,確保不會和主頁dom元素沖突。確保點擊時,重新加載。
        $("#showModal").on("hidden.bs.modal", function() {
            // 這個#showModal是模態框的id
            $(this).removeData("bs.modal");
            $(this).find(".modal-content").children().remove(); 
        });

五、說下注意事項

要注意的是遠程加載的這個頁面其實是一小段html代碼,它不需要單獨的引入js和css(如bootstrap的js和css)。這和使用Iframe方式是完全不同的,Iframe里面的內容可以看成是個單獨的頁面,所以使用Iframe時需要自己引入js和css。

到此,關于“Bootstrap模態窗中怎么從遠程加載內容”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄平县| 阿巴嘎旗| 澄城县| 清新县| 兴山县| 广德县| 邹城市| 东阳市| 闽清县| 晴隆县| 潜山县| 保山市| 乌审旗| 公安县| 精河县| 延吉市| 凤山市| 且末县| 尚志市| 和顺县| 曲阜市| 津市市| 宣汉县| 广元市| 遂溪县| 醴陵市| 桑植县| 泰顺县| 时尚| 治多县| 乡城县| 南江县| 项城市| 颍上县| 温泉县| 米易县| 绥芬河市| 宁夏| 潞西市| 枞阳县| 长寿区|