判斷在css加載完畢后執(zhí)行后續(xù)代碼示例
最近在寫(xiě)項(xiàng)目的framework,寫(xiě)個(gè)JQueryMessageBox的類(lèi),以使用jquery ui中的dialog()來(lái)顯示消息框,為了使方法方便調(diào)用,便加入了自動(dòng)判斷頁(yè)面是否加入了ui.js和ui.css,代碼如下:
//如果沒(méi)有包含ui.js,則引用 if ($('script[src$=""jquery-ui-1.8.11.custom.min.js""]').length == 0) {{ $(""<script src='/js/jquery-ui-1.8.11.custom.min.js' type='text/javascript' />"").appendTo('head'); }} //如果沒(méi)有加載css,則加載 if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) {{ $('<link href=""/css/jquery-ui-1.8.14.custom.css"" rel=""stylesheet"" type=""text/css"" />').appendTo('head'); //dialog() script }}
但CSS代碼不會(huì)立即加載下來(lái),于是在顯示dialog的時(shí)候則不會(huì)有樣式(在IE9下可以,因?yàn)樵贗E9下CSS即使后下載下來(lái),也會(huì)重新繪制頁(yè)面元素,而IE8則不會(huì)).解決此問(wèn)題的方法,可以使用ajax,當(dāng)css加載完畢后,再顯示dialog,這樣就可以帶著樣式顯示出來(lái)了,代碼如下:
if ($('link[ref$=""jquery-ui-1.8.14.custom.css""]').length == 0) { $.ajax({ url: '/css/jquery-ui-1.8.14.custom.css', success: function(data) { //創(chuàng)建一個(gè)style元素,并追加到head中 //替換其中images的路徑 $('<style type="text/css">' + data.replace(/url\(images/g, 'url(/css/images') + '</style>').appendTo('head'); //dialog() script; } }); } else { //dialog() script; }
相關(guān)文章
javascript 處理HTML元素必須避免使用的一種方法
我們?cè)诰帉?xiě)前臺(tái)頁(yè)面的時(shí)候,可能經(jīng)常會(huì)用到“javascript+數(shù)據(jù)”生成頁(yè)面元素的方法,但當(dāng)我們要處理的數(shù)據(jù)量較大,導(dǎo)致頁(yè)面需要展現(xiàn)過(guò)多的控件的時(shí)候,頁(yè)面的響應(yīng)速度也會(huì)直線下降2009-07-07ES6中的迭代器、Generator函數(shù)及Generator函數(shù)的異步操作方法
這篇文章主要介紹了ES6中的迭代器、Generator函數(shù)以及Generator函數(shù)的異步操作方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Bootstrap Table表格一直加載(load)不了數(shù)據(jù)的快速解決方法
bootstrap-table是一個(gè)基于Bootstrap風(fēng)格的強(qiáng)大的表格插件神器。接下來(lái)通過(guò)本文給大家介紹Bootstrap Table表格一直加載(load)不了數(shù)據(jù)的快速解決方法,感興趣的朋友一起看看吧2016-09-09使用 js 簡(jiǎn)單的實(shí)現(xiàn) bind、call 、aplly代碼實(shí)例
這篇文章主要介紹了使用 js 簡(jiǎn)單的實(shí)現(xiàn) bind、call 、aplly代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09微信小程序獲取網(wǎng)絡(luò)類(lèi)型的方法示例
這篇文章主要介紹了微信小程序獲取網(wǎng)絡(luò)類(lèi)型的方法,結(jié)合完整實(shí)例形式分析了微信小程序通過(guò)wx.getNetworkType獲取網(wǎng)絡(luò)類(lèi)型的相關(guān)操作技巧,需要的朋友可以參考下2019-03-03給頁(yè)面渲染時(shí)間加速 干掉Dom Level 0 Event
我們?nèi)サ羰录壎ǖ倪壿?發(fā)現(xiàn)只渲染dom元素,不綁定事件的時(shí)間,僅僅125ms,可見(jiàn)事件綁定的時(shí)間消耗還是很大的 ,尤其是第一種方式,也就是Dom Level 0 Event,最為耗時(shí)2012-12-12JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框(加滾動(dòng)條)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框,附加滾動(dòng)條功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02