Я считаю, что это на самом деле невозможно, ( тот факт, что $
будет undefined
), заголовок документа загружается синхронно, означая, что каждая строка полностью загружается перед следующей строкой
Здесь есть видео, где этот точный тест ставится на тест , и, кажется, я был прав
Видео: http://www.bennadel.com/blog/1915-How-Javascript-Loading-And-Blocking-Works-By-Default.htm
правильно ли вы загружаете файлы, например
<!DOCTYPE html>
<html>
<head>
<title>...</title>
<script type="text/javascript" src="...."></script>
<script type="text/javascript" src="...."></script>
<script type="text/javascript" src="...."></script>
<script type="text/javascript" src="...."></script>
<script type="text/javascript">
jQuery.ready(function(){
//This is executed once all 4 above have been loaded
});
</script>
<script type="text/javascript" src="...."></script>
<script type="text/javascript" src="...."></script>
<!-- The above to scripts are loaded in order after the jquery function has run. -->
</head>
</html>
метод ready
только для jQuery запускается после загрузки документа отверстия, пока DOM не увидит последний конечный тег, обычно </html>
[ требуется цитата ]
сказав, что это невозможно, это может быть возможно в IE8 или ниже, причина этого в том, что IE, возможно, является худшим браузером из когда-либо созданных, но они сказали, что IE9 полностью переработан и должен довольствоваться подобными Google, Apple, Mozilla и т. д.
Если вы используете несколько библиотек или перезаписываете переменную $
, вы можете получить ее внутри заблокированной области, например:
(function($){
$.ready(function(){
//Do your jQuery here !
});
})(jQuery)