我正在尋找最佳方法來根據一組特定條件有條件加載某些文件。基於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'代碼? –