中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

封裝DOMContentLoaded事件

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
//保存domReady的事件隊(duì)列
    eventQueue = [];

    //判斷DOM是否加載完畢
    isReady = false;

    //判斷DOMReady是否綁定
    isBind = false;

    /*執(zhí)行domReady()
     *
     *@param    {function}
     *@execute  將事件處理程序壓入事件隊(duì)列,并綁定DOMContentLoaded
     *          如果DOM加載已經(jīng)完成,則立即執(zhí)行
     *@caller
     */
    function domReady(fn){
        if (isReady) {
            fn.call(window);
        }
        else{
            eventQueue.push(fn);
        };

        bindReady();
    };

    /*domReady事件綁定
     *
     *@param    null
     *@execute  現(xiàn)代瀏覽器通過(guò)addEvListener綁定DOMContentLoaded,包括ie9+
     ie6-8通過(guò)判斷doScroll判斷DOM是否加載完畢
     *@caller   domReady()
     */
    function bindReady(){
        if (isReady) return;
        if (isBind) return;
        isBind = true;

        if (window.addEventListener) {
            document.addEventListener('DOMContentLoaded',execFn,false);
        }
        else if (window.attachEvent) {
            doScroll();
        };
    };

    /*doScroll判斷ie6-8的DOM是否加載完成
     *
     *@param    null
     *@execute  doScroll判斷DOM是否加載完成
     *@caller   bindReady()
     */
    function doScroll(){
        try{
            document.documentElement.doScroll('left');
        }
        catch(error){
            return setTimeout(doScroll,20);
        };
        execFn();
    };

    /*執(zhí)行事件隊(duì)列
     *
     *@param    null
     *@execute  循環(huán)執(zhí)行隊(duì)列中的事件處理程序
     *@caller   bindReady()
     */
    function execFn(){
        if (!isReady) {
            isReady = true;
            for (var i = 0; i < eventQueue.length; i++) {
                eventQueue[i].call(window);
            };
            eventQueue = [];
        };
    };

    //js文件1
    domReady(function(){
    });
    //js文件2
    domReady(function(){
    });

    //注意,如果是異步加載的js就不要綁定domReady方法,不然函數(shù)不會(huì)執(zhí)行,
    //因?yàn)楫惒郊虞d的js下載之前,DOMContentLoaded已經(jīng)觸發(fā),addEventListener執(zhí)行時(shí)已經(jīng)監(jiān)聽不到了

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:python通過(guò)MySQLdb訪問(wèn)mysql數(shù)據(jù)庫(kù)

下一篇:golang 操作mongodb 示例