Плагины JQuery и JQuery noConflict

Я использую JQuery в noConflict режим, так как мой код является виджетом JS, работающим на странице хоста.

Я хотел бы, чтобы мой код динамически загружал плагин jQuery ( qTip2), не мешая jQuery страницы.

Проблема в том, что плагин связывает свою переменную $ с jQuery локальной страницы.

Я пытался загрузить плагин перед звонком noConflict() и это работает, но оставляет период, когда глобальный $ указывает на мой jQuery.

Вот код (я опустил loadJsFile функция, чтобы держать его коротким. Он добавляет скрипт в голову и перезванивает при загрузке):

  (function trackJq(timesToGo) {
    if (timesToGo-- > 0) {
      log("timed");
      setTimeout(function() {trackJq(timesToGo)}, 20);
    }
  })(10)

  function isDef() { return typeof $.qtip !== 'undefined'; }

  function log (msg) { console.log(msg + " $:" + jQuery.fn.jquery + " qTip:" + isDef()); }

  log("Before loading my jQuery");
  loadJsFile("https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js", function() {
    log("After loading my jQuery");
    loadJsFile("http://cdn.jsdelivr.net/qtip2/2.2.0/jquery.qtip.min.js", function() {
      log("After loading qTip");
      $jq = jQuery.noConflict(true);
      log("After calling noconflict");

      // rest of code here...

    });
  });

и вывод (показывает, что есть временной интервал, когда мой jQuery вступает во владение):

timed                    $:1.2.3  qTip:false
Before loading my jQuery $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false
After loading my jQuery  $:1.11.0 qTip:false
timed                    $:1.11.0 qTip:false
timed                    $:1.11.0 qTip:false
timed                    $:1.11.0 qTip:false
After loading qTip       $:1.11.0 qTip:true
After calling noconflict $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false
timed                    $:1.2.3  qTip:false

Есть лучший способ сделать это?

0 ответов

Другие вопросы по тегам