My main.js файл выглядит следующим образом:RequireJS: выполнить Jquery код domReady
require.config({
paths: {
"jquery": "3rd_party/jquery-2.0.3.min",
"bootstrap": "3rd_party/bootstrap.min",
"handlebars":"3rd_party/handlebars",
"html5shiv":"3rd_party/html5shiv",
"modernizr":"3rd_party/modernizr",
"respond":"3rd_party/respond.min",
"jquery-ui":"3rd_party/jquery-ui-1.10.3.custom.min",
'fancybox':'3rd_party/jquery.fancybox.pack'
},
shim: {
"bootstrap": {
deps: ["jquery"]
},
"jquery-ui": {
deps: ["jquery"]
},
"fancybox": {
deps: ["jquery"]
}
}
})
requirejs(["jquery", "fancybox","controllers/" + controller,'modules/login','bootstrap','handlebars','html5shiv','modernizr','respond', 'jquery-ui'],function($,fancybox,controller,handleLogin) {
$(document).ready(function() {
if ($(window).width()>991) {
$(".sidebar").height($(".maincontent").height());
}
$(".searchresults .greencol").height($(".searchresults .article").first().height()-100);
$('.login').click(function() {
handleLogin();
return false;
})
$('.fancybox-inline').fancybox({
maxWidth : 800,
maxHeight : 600
});
$('.fancybox-document').fancybox({
width: 660,
height: 440
});
$('.fancybox-close-button').click(function() {
$.fancybox.close();
return false;
})
});
controller.init();
})
Теперь все, что происходит, на самом деле занимает некоторое время, чтобы выполнить этот бит:
if ($(window).width()>991) {
$(".sidebar").height($(".maincontent").height());
}
И на странице появляется небольшое мерцание. Моя единственная идея - включить jQuery отдельно в index.html и поместить этот бит в теги <script>
. Но тогда моя установка RequireJS нарушилась.
Есть ли у вас какие-либо предложения по достижению этого?
Спасибо за предложение, которое отлично работает. Я всегда придерживался правила «1 требовать за файл» и не понимал, что могу больше :) –
Я рад, что это сработало! Было бы целесообразно подкрепить ответ и отметить его как «принятый». – Louis
Отмечено как принято, но у меня нет достаточной репутации для продвижения, извините –