Я хотел бы следовать общему руководству по размещению всего JavaScript в самой нижней части страницы, чтобы ускорить время загрузки, а также позаботиться о некоторых неприятных проблемах с конфликтующими версиями jQuery в веб-приложении (Django).
Однако, каждый так часто у меня есть код, который зависит от jQuery, но который должен быть далее на странице (в основном код не может быть перенесен в нижнюю часть).
Мне интересно, есть ли простой способ закодировать это, так что, хотя jQuery еще не определен, код работает, когда jQuery определен.
Следующее, кажется, я должен сказать, как overkill, но я не знаю другого способа сделать это:
function run_my_code($) {
// jquery-dependent code here
$("#foo").data('bar', true);
}
var t = null;
function jquery_ready() {
if (window.jQuery && window.jQuery.ui) {
run_my_code(window.jQuery);
} else {
t = window.setTimeout(jquery_ready, 100);
}
}
t = window.setTimeout(jquery_ready, 100);
На самом деле мне может понадобиться использовать код более одного раза на странице, код, который не знает о другом коде, поэтому даже это, вероятно, не сработает, если я не переименую каждый jquery_ready в нечто вроде jquery_ready_guid, jquery_ready_otherguid и т.д..
Разъяснение
Просто так ясно, я помещаю include в JavaScript (<script type="text/javascript" src="jquery.min.js" />
) на очень низком страницы, перед </body>
. Поэтому я не могу использовать $
.