2015-02-11 3 views
-5
$.getScript('Scripts/TEST/jquery-1.10.2.js', function() { 
    $.getScript('Scripts/TEST/jquery-ui.js', function() { 
     $("#accordion").accordion(); 
    }); 
}); 

Это работает с IE, но не работает в google chrome.JQuery не работает в Google chrome

+1

Что означает «не работает»? * Что * не работает? Загружается ли первый скрипт? Второй ли? Не работает ли .accordion() '? Что оно делает? Вы видите какие-либо ошибки в консоли? –

+6

Как работает '$ .getScript()' перед загрузкой jQuery? Вы не загружаете две версии jQuery одновременно, не так ли? – JJJ

+0

@ Juhana: Хорошая добыча, я даже не думал об этом. –

ответ

0

Проблема заключается в том, что ваш аккордеон вызывается. Согласно API docs

обратного вызова вызывается после загрузки сценария, но не обязательно выполняется.

В вашем случае обратный вызов для jquery-ui.js вызывается сразу после завершения загрузки, но до выполнения сценария. В последних браузерах, таких как Chrome, они загружают сценарий, но пытаются отложить выполнение до готовности DOM.

Вы можете решить это двумя способами.

  1. Добавьте jquery-ui.js зависимость непосредственно сразу после jquery.js
  2. Вы можете использовать загрузчик скрипт как LABjs/requireJS

Если вы используете LABjs, то вы можете сделать что-то вроде этого

<!-- download LABjs directly --> 
    <script src="LAB.js"></script> 
    <!-- use LAB to download other dependencies --> 
    <script> 
    $LAB 
     .script("Scripts/TEST/jquery-1.10.2.js").wait() 
     .script("Scripts/TEST/jquery-ui.js") 
     .wait(function(){ 
      $("#accordion").accordion(); 
     }); 
    </script> 
+0

Спасибо большое, теперь он работает мой друг – Sohel

+0

У меня есть вопрос, где загрузка Javascript при использовании src =? – Sohel

+0

да, что это? – Arkantos

Смежные вопросы