$(document).ready() не срабатывает при вызовах в head.ready()
У меня проблема с использованием jQuery $(document).ready
и headjs framework v1.0.3 с функциональностью head.ready, только в Internet Explorer (версия 11, я не могу примерить более старую версию) и только один раз в десять...
Прямо перед </body>
Я имею:
head.load('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',function() {
head.load('//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js');
head.ready(function() {
$(document).ready(function() {
$('.class').show();
});
});
});
А иногда событие $(document).ready не вызывается. Отлично работает на Chrome и Firefox.
$(window).load doesn't work better.
Я пытаюсь поставить head.ready()
но зря
head.load('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',function() {
head.load('//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js');
});
head.ready(function() {
$(document).ready(function() {
$('.class').show();
});
});
Я нахожу решение, используя head.ready
вместо $(document).ready
, но я не могу использовать это решение, потому что часть в head.ready(function() {...});
исходит из кода общего доступа с платформами, не использующими headjs.
Кто-нибудь когда-нибудь сталкивался с этой проблемой или есть решение?
1 ответ
Я предполагаю, что есть условие гонки. Вы можете проверить, находится ли документ в состоянии готовности, так как он готов к работе, поскольку document.ready
не будет стрелять
head.ready(function() {
var readyfunc = function(){
$('.class').show();
};
if (document.readyState === 'complete'){
readyfunc();
}else{
$(document).ready(function() {
readyfunc();
});
}
}
Посмотри, работает ли это.