Я ищу наилучший подход к условной загрузке некоторых файлов на основе определенного набора условий.Условная загрузка файлов CSS на основе условий тестирования в плагине JQuery
У меня есть три 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
.
То, что я пытаюсь сделать это следующим образом:
- Load JQuery и мой JQuery плагин первый
- Использование
isRetina
функции внутри моего JQuery плагин, чтобы проверить, есть ли устройство сетчатки дисплей - нагрузки
core.min.css
- нагрузки
add_regular.min.css
если не Сетчатка дисплей, или загрузитьadd_retina.min.css
, если дисплей Retina
В настоящее время я загружаю все три файла 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
или любое другое решение.
Cheers.
Да, я очень хочу найти способ использовать собственную функцию 'document.ready' JQuery –
@ObinwanneHill после загрузки _jQuery_ вы можете использовать его как обычно. Я просто сказал, что не знаю, как это повлияет, если оно загружено после того, как эти события уже уволены. –
Хорошо. Вы имели в виду обернуть код «YepNope» этими слушателями событий ?! –