我正在寻找最佳方法来根据一组特定条件有条件加载某些文件。基于JQuery插件中测试条件的CSS文件的有条件加载
我有三个CSS文件和两个JavaScript文件,这我目前正在加载像这样:
<link href="core.min.css" rel="stylesheet" type="text/css">
<link href="add_regular.min.css" rel="stylesheet" type="text/css">
<link href="add_retina.min.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery-plugin.min.js"></script>
由于是显而易见的第四个文件是jQuery和第五个是我的jQuery插件。 JQuery插件里面有一系列函数,就像测试一样。 isMobile
, isRetina
,isPhone
等。但是,让我们关注isRetina
。
我试图完成如下:
- 加载jQuery和我的jQuery插件第一
- 使用
isRetina
我的jQuery插件内部函数来检查设备是否具有Retina显示屏 - 负载
core.min.css
- 负载
add_regular.min.css
如果不是视网膜显示,或负载add_retina.min.css
如果视网膜显示
目前我正在加载所有三个CSS文件,我不想这样做,因为我有一堆其他CSS文件,我想加载它们,因为我的JQuery插件确定哪一个最好,根据我的上面的例子。例如,我可能有一个phone.min.css
,我想在使用我的插件的isPhone
函数进行另一个测试后加载。
我使用YepNope
和做这样的考虑:
<script type="text/javascript" src="yepnope.min.js"></script>
<script>
yepnope([{
load: ['jquery.min.js', 'jquery-plugin.min.js'],
test : $.myplugin.isRetina(),
yep : ['core.min.css', 'add_retina.min.css'],
nope : ['core.min.css', 'add_regular.min.css'],
complete : function(){
//my jquery plugin constructor here
$(selector).myplugin(options);
}
}]);
</script>
然而,即使上面的方法是正确的,我不知道如何实现document.ready
,因为我的插件的构造需要只有在DOM准备就绪时才运行。
我想了解如何使用YepNope
或任何其他解决方案来解决此问题。
干杯。
是啊,我很想找到一些方法来利用JQuery自己的'document.ready'功能 –
@ObinwanneHill一旦_jQuery_被加载,你可以正常使用它。我只是说,如果在这些事件已经发射后加载它,它是如何受到影响的。 –
好的。你是不是想用这些事件监听器来包装'YepNope'代码? –