Layer彈窗顯示動態時間


突然有了一個顯示倒計時的需求,本來想着小問題,找段js插進去就好了。

<span id="span_dt_dt"></span>
    <script>
        function show_time(){
            window.setTimeout("show_time()", 1000);
            BirthDay=new Date('2020 14:12:45');//改成你的計時日期
            console.log(BirthDay)
            today=new Date();
            timeold=(BirthDay.getTime()-today.getTime());
            sectimeold=timeold/1000
            secondsold=Math.floor(sectimeold);
            msPerDay=24*60*60*1000
            e_daysold=timeold/msPerDay
            daysold=Math.floor(e_daysold);
            e_hrsold=(e_daysold-daysold)*24;
            hrsold=Math.floor(e_hrsold);
            e_minsold=(e_hrsold-hrsold)*60;
            minsold=Math.floor((e_hrsold-hrsold)*60);
            seconds=Math.floor((e_minsold-minsold)*60);
            span_dt_dt.innerHTML=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ;
        }
    show_time();
    </script>

這個是我從其他大佬哪里拿的,一開始沒跑起來,后來檢查了一下是new Date的時間格式不對,大概是這個樣子,自己再改下

為什么選這個呢,是因為這個帶時分秒

 

這個在平面頁面上顯示倒ok,當我把時間dom移動到layer.open中,好家伙,問題來了。

layer只讀取第一次在頁面抓取的內容,一開始沒有用html類型的彈出模式。

然我我想着通過layer內置方法或者回調來解決實時刷新的問題

然后拿layer中success的回調打算做點手腳,

在改造過程中,還知道了layero這個東西,其實這個就是彈出層的DOM,

通過

$(layero).find("#span_dt_dt").text($txt) 
這個來賦值,好家伙,雖然跑通了但還是不行,依然改變不了靜態的本質。
success: function(layero, index){
        //             // var form = $(layero).find("#span_dt_dt").text(1232);//獲取子頁面元素

                    
        //             window.setTimeout("show_time()", 1000);
        //             BirthDay=new Date('2020 14:12:45');//改成你的計時日期
        //             console.log(BirthDay)
        //             today=new Date();
        //             timeold=(BirthDay.getTime()-today.getTime());
        //             sectimeold=timeold/1000
        //             secondsold=Math.floor(sectimeold);
        //             msPerDay=24*60*60*1000
        //             e_daysold=timeold/msPerDay
        //             daysold=Math.floor(e_daysold);
        //             e_hrsold=(e_daysold-daysold)*24;
        //             hrsold=Math.floor(e_hrsold);
        //             e_minsold=(e_hrsold-hrsold)*60;
        //             minsold=Math.floor((e_hrsold-hrsold)*60);
        //             seconds=Math.floor((e_minsold-minsold)*60);
        //             // $(layero).find("#span_dt_dt").innerHTML=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ;
        //             $txt=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ;
        //             $(layero).find("#span_dt_dt").text($txt) ;
                    
        //       }

然后就采用了一開始的保底的辦法,就是用layer的ifame這個,就是跳轉到新頁面。然后成功。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM