Я хочу включить fancybox только в том случае, если нет сенсорного устройства. Это мой код до сих пор:Использование yepnope (относительные пути, css и js)
<script>
yepnope([{
test : Modernizr.touch,
nope : './js/lib/fancybox/jquery.fancybox.pack.js',
callback : {
"jquery.fancybox.pack.js": function() {
console.log("fancybox loaded!");
}
}
}]);
</script>
Этот код помещается перед тегом закрывающего тега. Я получаю ошибку TypeError: k.apply is not a function
, но это мне не помогает.
Мои вопросы:
- Могу ли я загрузить файл JS с этим относительный путь?
- Где мой относительный путь? С пути, где лежит епноп?
- Как я могу условно загрузить JS и CSS-файл?
Update:
Теперь я попробовал другой способ:
<script>
Modernizr.load([
{
test : Modernizr.mq('screen and (max-width: 31.25em)'),
yep : {
'photoswipe' : ['/js/klass.min.js', '/js/code.photoswipe-3.0.5.min.js']
},
nope : {
'fancybox' : ['/js/lib/fancybox/jquery.fancybox.pack.js', '/js/lib/fancybox/jquery.fancybox.css']
},
callback : {
'photoswipe': function (url, result, key) {
var myPhotoSwipe = $("a.fancy").photoSwipe({ enableMouseWheel: false , enableKeyboard: false });
},
'fancybox': function (url, result, key) {
$('a.fancy').fancybox();
}
}
}
]);
</script>
я получаю следующее сообщение об ошибке TypeError: a.split is not a function
. Что я делаю неправильно?
'modernizr.custom.js' находится на том же уровне, что и мой' lib' папку (где 'fancybox' папка находится в). Поэтому мои пути должны быть в порядке. Я не хочу включать 'yepnope.js' отдельно, потому что я уже включил его с' modernizr'? Итак, 'yepnope' и' Modernizr.load' одинаковы? Я обновил свой вопрос. Я все еще не убегаю. Ты знаешь почему? – testing
Да Modernizr.load вызывает yepnope, так что, по сути, это одно и то же: «Modernizr.load = function() {yepnope.apply (window, []. Slice.call (arguments, 0));}; 'если вы хотите проверить этот материал, я настоятельно рекомендую загрузить версию dev библиотеки, чтобы вы могли видеть источник. Какие ошибки возникают в DevTools (или в зависимости от того, какой вы используете отладочный браузер)? Также обратите внимание, что расположение modernizr.custom.js не имеет отношения к расположению других включенных скриптов, потому что упомянутый путь должен быть указан как со страницы html. –
В моем последнем примере я получаю 'TypeError: a.split не функция 'из' modernizr.custom.js'. Является ли структура из моего кода хорошей? Насколько я понимаю, ключ и обратный вызов должны выполняться при загрузке сценария. – testing