Состояние гонки между новым объектом окна и щелчком по ссылке

Я сталкиваюсь с состоянием гонки между созданием нового оконного объекта и щелчком по ссылке. Новое окно представляет собой плагин с именем AjaxUpload, для ввода которого требуется элемент ссылки с уникальным идентификатором. Обратите внимание, что AjaxUpload открывает новое окно выбора файлов.

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

Однако проблема возникает, когда моделируемый щелчок выполняется до завершения загрузки оконного объекта, в результате чего код работает только при двойном щелчке по ссылке.

Вот код:

$(document).ready(function() {
            // The link is an anchor element with icon camera class
            // that will be attached with a new ID called wall-image-upload
            // which will destroyed after the window is brought up
            $( "a.icon.camera" ).click(function(e) {
                // Exit the function when wall-image-upload
                // id is created to avoid infinite loop
                if ($('#wall-image-upload').length!==0) {
                    return;
                }
                // Create the ID
                e.target.setAttribute("id", "wall-image-upload");

                // Create AjaxUpload object to handle the
                // image attachment where it looks up link 
                // with wall-image-upload ID
                var uploader = new window.AjaxUpload(
                   'wall-image-upload',
                   { action: 'wall_upload/{{$nickname}}',
                       name: 'userfile',
                       onSubmit: function(file,ext) { $('#profile-rotator').show(); },
                       onComplete: function(file,response) {
                           addeditortext(response);
                           $('#profile-rotator').hide();
                       }                 
                   }
                );
             // Simulate click on the element, this doesn't effect on
             // anything unfortunately
             $('#wall-image-upload').trigger("click");

             // Destroy the id
             $('#wall-image-upload').prop("id",null);

            }); 
});

куда и как поставить

$('#wall-image-upload').trigger("click");

Быть выполненным правильно?

1 ответ

Решение

Вопрос не имеет значения. Расы не возникли. Проблема была в том, что симулированный щелчок не вызывает окно, какой бы ни была причина. Этот вопрос закрыт.

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