判斷在css加載完畢后執(zhí)行后續(xù)代碼示例
更新時間:2014年09月03日 11:18:45 投稿:whsnow
這篇文章主要介紹了在css加載完畢后執(zhí)行后續(xù)代碼的方法,需要的朋友可以參考下
最近在寫項目的framework,寫個JQueryMessageBox的類,以使用jquery ui中的dialog()來顯示消息框,為了使方法方便調用,便加入了自動判斷頁面是否加入了ui.js和ui.css,代碼如下:
//如果沒有包含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');
}}
//如果沒有加載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代碼不會立即加載下來,于是在顯示dialog的時候則不會有樣式(在IE9下可以,因為在IE9下CSS即使后下載下來,也會重新繪制頁面元素,而IE8則不會).解決此問題的方法,可以使用ajax,當css加載完畢后,再顯示dialog,這樣就可以帶著樣式顯示出來了,代碼如下:
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)建一個style元素,并追加到head中
//替換其中images的路徑
$('<style type="text/css">' + data.replace(/url\(images/g, 'url(/css/images') + '</style>').appendTo('head');
//dialog() script;
}
});
}
else {
//dialog() script;
}
相關文章
JavaScript庫之vanilla-tilt使用教程(一個平滑的3D傾斜庫)
vanilla-tilt.js是Javascript中一個平滑的3D傾斜庫,可以讓網頁的一些控件變得動態(tài)起來,下面這篇文章主要給大家介紹了關于JavaScript庫之vanilla-tilt使用的相關資料,需要的朋友可以參考下2023-02-02
Three.js利用性能插件stats實現(xiàn)性能監(jiān)聽的方法
Three.js 是一款運行在瀏覽器中的 3D 引擎,你可以用它創(chuàng)建各種三維場景,而下面這篇文章主要給大家介紹了關于Three.js如何利用性能插件stats實現(xiàn)性能監(jiān)聽的相關資料,需要的朋友可以參考借鑒,下面來一起學習學習吧。2017-09-09
jQuery實現(xiàn)動態(tài)添加、刪除按鈕及input輸入框的方法
這篇文章主要介紹了jQuery實現(xiàn)動態(tài)添加、刪除按鈕及input輸入框的方法,涉及jQuery事件響應及頁面元素動態(tài)操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-04-04

