jQuery附加CSS文件并等待直到应用样式而没有setInterval?

Thu*_*yen 3 javascript jquery

我加载CSS:

$('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
Run Code Online (Sandbox Code Playgroud)

它有效,但我有一个功能,需要在应用CSS后运行,我不想使用setInterval它.

我怎样才能做到这一点 ?

Kai*_*ido 7

一个解决方案,如果你有权访问你正在加载的css文件,
就是使用该transitionend事件,并duration从你的css 激活设置为0.1 的转换.

像这样,你确定CSS已经计算好了.

style2.css

 body{opacity:1;}
Run Code Online (Sandbox Code Playgroud)

的index.html

<style>
    body{transition : opacity 0.1s linear; opacity:.9};
</style>
<body>
   ...
<script>
    document.body.addEventListener('transitionend', function(){
        alert('done');
       }, false);
    $('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
Run Code Online (Sandbox Code Playgroud)

编辑:
对于需要js功能的(没有外部文件):https://jsfiddle.net/t0akchuw/