判断在css加载完毕后执行后续代码示例

 更新时间:2014年09月03日 11:18:45   投稿:whsnow  
这篇文章主要介绍了在css加载完毕后执行后续代码的方法,需要的朋友可以参考下

最近在写项目的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) { 
//创建一个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倾斜库)

    JavaScript库之vanilla-tilt使用教程(一个平滑的3D倾斜库)

    vanilla-tilt.js是Javascript中一个平滑的3D倾斜库,可以让网页的一些控件变得动态起来,下面这篇文章主要给大家介绍了关于JavaScript库之vanilla-tilt使用的相关资料,需要的朋友可以参考下
    2023-02-02
  • 通过JS深度判断两个对象字段相同

    通过JS深度判断两个对象字段相同

    这篇文章主要介绍了通过JS深度判断两个对象字段相同,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Bootstrap 响应式实用工具实例详解

    Bootstrap 响应式实用工具实例详解

    Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发。这些可以通过媒体查询结合大型、小型和中型设备,实现内容对设备的显示和隐藏。下面通过本文给大家分享Bootstrap 响应式实用工具,一起看看吧
    2017-03-03
  • 详解JavaScript类型判断的四种方法

    详解JavaScript类型判断的四种方法

    这篇文章主要介绍了JavaScript类型判断的四种方法,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-10-10
  • js实现简单的倒计时

    js实现简单的倒计时

    这篇文章主要为大家详细介绍了js实现简单的倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Three.js利用性能插件stats实现性能监听的方法

    Three.js利用性能插件stats实现性能监听的方法

    Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,而下面这篇文章主要给大家介绍了关于Three.js如何利用性能插件stats实现性能监听的相关资料,需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-09-09
  • 深入理解JavaScript的async/await

    深入理解JavaScript的async/await

    我们给大家分享了关于JavaScript的async/await的相关知识点内容,有需要的朋友们可以学习下。
    2018-08-08
  • js实现消息滚动效果

    js实现消息滚动效果

    本文主要分享了js实现消息滚动效果的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • JavaScript插件化开发教程 (二)

    JavaScript插件化开发教程 (二)

    本系列的开篇文章我们一起探讨了jQuery如何开发插件,今天这篇文章,我们来继续插件开发之旅,希望大家能够喜欢。
    2015-01-01
  • jQuery实现动态添加、删除按钮及input输入框的方法

    jQuery实现动态添加、删除按钮及input输入框的方法

    这篇文章主要介绍了jQuery实现动态添加、删除按钮及input输入框的方法,涉及jQuery事件响应及页面元素动态操作相关实现技巧,需要的朋友可以参考下
    2017-04-04

最新评论