最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在多個(gè)頁(yè)面使用同一個(gè)HTML片段的代碼

 更新時(shí)間:2011年03月04日 00:36:55   作者:  
有一個(gè)比較復(fù)雜的HTML片段(A),如果把這個(gè)HTML片段嵌入到其他頁(yè)面中(B,C,D....)。 問(wèn)題的關(guān)鍵是在HTML片段中有大量的JavaScript邏輯需要處理,比如說(shuō)分頁(yè),點(diǎn)擊事件響應(yīng)等。

問(wèn)題描述
有一個(gè)比較復(fù)雜的HTML片段(A),如果把這個(gè)HTML片段嵌入到其他頁(yè)面中(B,C,D....)。
問(wèn)題的關(guān)鍵是在HTML片段中有大量的JavaScript邏輯需要處理,比如說(shuō)分頁(yè),點(diǎn)擊事件響應(yīng)等。

對(duì)于這個(gè)問(wèn)題,我們用一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明:
“頁(yè)面上有一個(gè)按鈕,點(diǎn)擊此按鈕引入一個(gè)HTML片段,此HTML片段中有分頁(yè)按鈕?!?

1. 使用IFrame
主頁(yè)面,點(diǎn)擊一個(gè)按鈕向頁(yè)面引入一個(gè)IFrame:

復(fù)制代碼 代碼如下:

    <script type="text/javascript">
        $(function() {
            $("#clickToInsert").click(function() {
                $("#placeholder").html('<iframe src="iframe.htm"></iframe>');
            });
        });
    </script>
    <input type="button" id="clickToInsert" value="Insert HTML" />
    <div id="placeholder">
    </div>
    IFrame頁(yè)面,模擬分頁(yè)的情況:
    <script type="text/javascript">
        $(function() {
            var parent = $("#complex_page_segment");
            $(".previous", parent).click(function() {
                $(".content", parent).html("Previous Page Content");
            });
            $(".next", parent).click(function() {
                $(".content", parent).html("Next Page Content");
            });
        });
    </script>
    <div id="complex_page_segment">
        <input type="button" value="Previous Page" class="previous" />
        <input type="button" value="Next Page" class="next" />
        <div class="content">
            Page Content</div>
    </div>

2. AJAX返回頁(yè)面片段,并注冊(cè)事件
注:我們通過(guò)textarea來(lái)模擬返回的HTML片段。

復(fù)制代碼 代碼如下:

    <script type="text/javascript">
        $(function() {
            $("#clickToInsert").click(function() {
                $("#placeholder").html($("#clone").val());
                var parent = $("#complex_page_segment");
                $(".previous", parent).click(function() {
                    $(".content", parent).html("Previous Page Content");
                });
                $(".next", parent).click(function() {
                    $(".content", parent).html("Next Page Content");
                });
            });
        });
    </script>
    <input type="button" id="clickToInsert" value="Insert HTML" />
    <div id="placeholder">
    </div>
    <textarea id="clone" style="display: none;">
    <div id="complex_page_segment">
        <input type="button" value="Previous Page" class="previous" />
        <input type="button" value="Next Page" class="next" />
        <div class="content">Page Content</div>
    </div>
    </textarea>

由于我們需要在多個(gè)頁(yè)面引用同一個(gè)HTML片段,這種方法導(dǎo)致大量事情處理被重復(fù)性的拷貝粘貼,明顯我們需要將公共的方法提取出來(lái)。

3. AJAX返回頁(yè)面片段,并調(diào)用頁(yè)面片段中的函數(shù)注冊(cè)事件

復(fù)制代碼 代碼如下:

    <script type="text/javascript">
        $(function() {
            $("#clickToInsert").click(function() {
                $("#placeholder").html($("#clone").val());
                init_complex_page_segment();
            });
        });
    </script>
    <input type="button" id="clickToInsert" value="Insert HTML" />
    <div id="placeholder">
    </div>
    <textarea id="clone" style="display: none;">
    <script type="text/javascript">
        function init_complex_page_segment() {
            var parent = $("#complex_page_segment");
            $(".previous", parent).click(function() {
                $(".content", parent).html("Previous Page Content");
            });
            $(".next", parent).click(function() {
                $(".content", parent).html("Next Page Content");
            });
        }
    </script>
    <div id="complex_page_segment">
        <input type="button" value="Previous Page" class="previous" />
        <input type="button" value="Next Page" class="next" />
        <div class="content">Page Content</div>
    </div>
    </textarea>

其實(shí)我們可以更進(jìn)一步,完全沒(méi)必要手工調(diào)用這個(gè)函數(shù),而是可以在返回的HTML片段中讓其自動(dòng)執(zhí)行。

4. AJAX返回頁(yè)面片段,其事件自動(dòng)注冊(cè)

復(fù)制代碼 代碼如下:

    <script type="text/javascript">
        $(function() {
            $("#clickToInsert").click(function() {
                $("#placeholder").html($("#clone").val());
            });
        });
    </script>
    <input type="button" id="clickToInsert" value="Insert HTML" />
    <div id="placeholder">
    </div>
    <textarea id="clone" style="display: none;">
    <script type="text/javascript">
        $(function() {
            var parent = $("#complex_page_segment");
            $(".previous", parent).click(function() {
                $(".content", parent).html("Previous Page Content");
            });
            $(".next", parent).click(function() {
                $(".content", parent).html("Next Page Content");
            });
        });
    </script>
    <div id="complex_page_segment">
        <input type="button" value="Previous Page" class="previous" />
        <input type="button" value="Next Page" class="next" />
        <div class="content">Page Content</div>
    </div>
    </textarea>

最后一種方法和第一種IFrame的方式是我們所推薦的。
下載源代碼

相關(guān)文章

  • ES10的13個(gè)新特性示例(小結(jié))

    ES10的13個(gè)新特性示例(小結(jié))

    這篇文章主要介紹了ES10的13個(gè)新特性示例(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 關(guān)于火狐(firefox)及ie下event獲取的兩種方法

    關(guān)于火狐(firefox)及ie下event獲取的兩種方法

    經(jīng)常有同事問(wèn)我在火狐瀏覽器怎么獲取event的方法,大多是想獲取event.keyCode的功能,接下來(lái)為您介紹兩種實(shí)現(xiàn)方法,需要了解的朋友可以參考下
    2012-12-12
  • 老生常談jacascript DOM節(jié)點(diǎn)獲取

    老生常談jacascript DOM節(jié)點(diǎn)獲取

    下面小編就為大家?guī)?lái)一篇老生常談jacascript DOM節(jié)點(diǎn)獲取。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • js兩個(gè)數(shù)組合并去重的方法大全

    js兩個(gè)數(shù)組合并去重的方法大全

    這篇文章主要給大家介紹了關(guān)于js兩個(gè)數(shù)組合并去重的相關(guān)資料,日常開(kāi)發(fā)中經(jīng)常會(huì)用到的JS數(shù)組去重,文中將每種方法都給出了代碼示例,需要的朋友可以參考下
    2023-09-09
  • JavaScript對(duì)象參數(shù)的引用傳遞

    JavaScript對(duì)象參數(shù)的引用傳遞

    這篇文章主要為大家介紹了JavaScript對(duì)象參數(shù)的引用傳遞的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 使用 Jest 和 Supertest 進(jìn)行接口端點(diǎn)測(cè)試實(shí)例詳解

    使用 Jest 和 Supertest 進(jìn)行接口端點(diǎn)測(cè)試實(shí)例詳解

    這篇文章主要介紹了使用 Jest 和 Supertest 進(jìn)行接口端點(diǎn)測(cè)試,結(jié)合實(shí)例形式詳細(xì)分析了使用 Jest 和 Supertest 進(jìn)行接口端點(diǎn)測(cè)試具體原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • Javascript 事件流和事件綁定

    Javascript 事件流和事件綁定

    本文中的部分觀點(diǎn)參考至《Javascript高級(jí)程序設(shè)計(jì)》(很好的一本書(shū),推薦大家看看?。?,addEvent函數(shù)借鑒了YUI2.7的_addListener方法,這里也要謝謝YUI那些牛人,向他們致敬!
    2009-07-07
  • javascript適合移動(dòng)端的日期時(shí)間拾取器

    javascript適合移動(dòng)端的日期時(shí)間拾取器

    這篇文章主要介紹了javascript適合移動(dòng)端的日期時(shí)間拾取器,提供了友好的日期和時(shí)間選擇操作界面,需要的朋友可以參考下
    2015-11-11
  • 比較全面的event對(duì)像在IE與FF中的區(qū)別 推薦

    比較全面的event對(duì)像在IE與FF中的區(qū)別 推薦

    整理的比較全的event對(duì)像在ie與firefox瀏覽器中的區(qū)別。
    2009-09-09
  • js中function()使用方法

    js中function()使用方法

    通過(guò)函數(shù)對(duì)象的性質(zhì),可以很方便的將一個(gè)函數(shù)賦值給一個(gè)變量或者將函數(shù)作為參數(shù)傳遞,下面為大家介紹下函數(shù)的使用語(yǔ)法
    2013-12-12

最新評(píng)論

嘉峪关市| 通江县| 诸暨市| 永泰县| 都兰县| 定州市| 响水县| 武邑县| 土默特左旗| 龙胜| 海林市| 济南市| 北票市| 克什克腾旗| 南宫市| 昌都县| 马关县| 泰安市| 平遥县| 怀化市| 垣曲县| 南安市| 广安市| 余江县| 丹寨县| 原平市| 临夏市| 大宁县| 城步| 富顺县| 都兰县| 波密县| 齐齐哈尔市| 囊谦县| 潼南县| 临夏县| 仁化县| 郸城县| 光泽县| 巢湖市| 长白|