Сделайте что-нибудь после загрузки плагина jQuery

Я динамически загружаю jQuery и jQuery UI на страницу, и мне нужно знать, когда пользовательский интерфейс jQuery успешно расширил jQuery .

В настоящий момент я использую состояние готовности элемента сценария, загружающего пользовательский интерфейс jQuery , чтобы запустить мой код, но я думаю, что в этот момент скрипт загрузился, но пользовательский интерфейс jQuery не был должным образом инициализирован.

Это единственный вариант для опроса, пока $. Ui определен?

Вот код, с которым я сейчас борюсь:

(load_ui = (callback) ->
    script2 = document.createElement("script")
    script2.type = "text/javascript"
    script2.src = "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.js"
    script2.onload = script2.onreadystatechange = ->
      console.log 'readystate:', @readystate
      if @readystate == "loaded" or @readystate == "complete"
        console.log "jquery ui is loaded"
        callback ($ = window.jQuery).noConflict(1), done = 1
        $(script,script2).remove()
    document.documentElement.childNodes[0].appendChild script2
    console.log 'jquery ui script element appended to page'
(window, document, req_version, callback, $, script, done, readystate) ->
  if not ($ = window.jQuery) or req_version > $.fn.jquery or callback($)
    console.log "begin loading jquery"
    script = document.createElement("script")
    script.type = "text/javascript"
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + req_version + "/jquery.min.js"
    script.onload = script.onreadystatechange = ->
      if not done and (not (readystate = @readyState) or readystate == "loaded" or readystate == "complete")
        console.log "jquery is loaded, now loading jquery ui"
        load_ui(callback)        

    document.documentElement.childNodes[0].appendChild script
    console.log 'jquery script element appended to page'
) window, document, "1.6.1", ($, L) ->
    console.log $
    console.log $.ui.version

По какой-то причине состояние готовности элемента сценария jquery ui просто возвращает undefined.

6
задан Acorn 1 July 2011 в 17:00
поделиться