0

У меня проблема с использованием 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(); 
     }); 
    }); 
}); 

и несколько раз, за ​​$ (документ) .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 не имеет отношения к загрузке контента динамически. Он касается только начальной загрузки страницы. – epascarello

+0

что такое 'head'? 'load()' заменяет внутренний html и не является правильным способом загрузки скриптов. Также почему вы не можете использовать теги скриптов? – charlietfl

ответ

0

Мое предположение, что есть состояние гонки. Вы можете проверить, является ли этот документ уже находится в состоянии готовности в голове готовы, так как document.ready не будет срабатывать

head.ready(function() { 
    var readyfunc = function(){ 
    $('.class').show(); 
    }; 

    if (document.readyState === 'complete'){ 
    readyfunc(); 
    }else{ 
    $(document).ready(function() { 
     readyfunc(); 
    }); 
    } 
} 

Смотрите, если это работает.

+0

Я загрузил страницу в 50 раз без проблем, поэтому я предполагаю, что это решение исправляет ошибку. Благодаря !! – Wils