JQuery: плагин загрузки по требованию не удается, если предупреждение не присутствует - PullRequest
1 голос
/ 25 февраля 2011

Я использую плагин jQuery Loader для загрузки файлов по требованию - tagit плагин.

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

Есть идеи, почему это происходит?

$(document).ready(function(){    
   $("#mytags").Loader(
                {
                    url: [
                        'media/plugins/tagit/css/jquery-ui/jquery.ui.autocomplete.custom.css',
                        'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js',
                        'media/plugins/tagit/js/jquery-ui/jquery-ui-1.8.autocomplete.min.js',
                        'media/plugins/tagit/js/tag-it.js'
                    ],
                    success: function(target) {
                        //alert('loaded');                  
                         $(target).tagit({
                            availableTags: ["tag1","tag2", "tag3"],
                            values: ["tag2"]
                        });
                    }
                }
 });

Я тестирую это в моей локальной среде XAMP.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Возможная причина, по которой помогает блокировка выполнения кода с помощью alert (), заключается в том, что, хотя выполнение JavaScript останавливается (включая интервалы и тайм-ауты), внешние ресурсы (JS, CSS, изображения и xmlhttprequests) могут завершать загрузку.Но, опять же, до тех пор, пока код, следующий за alert (), не завершится, ни один из этих внешних сценариев не будет запущен, и никакие события DOM не сработают.

Пример, когда alert () имеет значение: http://jsfiddle.net/p9Nff/

0 голосов
/ 25 февраля 2011

Вероятно, это связано с асинхронностью, вы пытаетесь принудительно установить асинхронность в ложь?

При открытии оповещения скрипт успевает загрузить ваши плагины. или, как сказал Алексей, ваш DOM не готов, поместите ваш код в $ (function () {/ код здесь /});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...