Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2013, 13:12
Новичок на форуме
Отправить личное сообщение для Wolkodav Посмотреть профиль Найти все сообщения от Wolkodav
 
Регистрация: 10.07.2013
Сообщений: 3

Диалоговое окно
Доброго времени суток всем. Работаю над проектом, и появилась задача копирование файлов на сервере. Что бы копировать файлы надо спрашивать пользователя какой копировать, а какой нет( в случае совпадения). Всю логику сделал, но возникла проблема, надо выкидывать окошко с вопросом. Три кнопки: Копировать, Вставить, Отменить, в зависимости от нажатия на кнопку возвращается то или иное значение( типо confirm, только три кнопки а не две), и вот тут возникла проблема, надо дождаться ответа пользователя и только потом идти дальше.
Вот код окна:
var answer = false;

function filesQuestion(file_name, type){
    var title = 'Хотите ли вы ';
    if (type)
        title += 'файл: '+file_name+'?';
    else
        title += 'папка: '+file_name+'?';
        
    $('#quastion').dialog({
            autoOpen: false,
            modal : true,
            resizable: false,
            width : 340,
            height : 200,
            dialogClass : 'no-close',
            title : title,
            resizable: false,
            buttons:[
                {text : 'Вырезать',
                click : function(){
                    $(this).dialog('close');
                    callback(2);
                }},
                {text : 'Копировать',
                click : function(){
                    $(this).dialog('close');
                    callback(1);
                }},
                {text : 'Отменить',
                click : function() {
                    $(this).dialog('close');
                    callback(-1);
                    answer =-1;
                }}
            ]});     
    $('#quastion').dialog('open');
    return answer;
}

Вот код вызова частичный:
if (copy)
                            {
                                var type = NaN;
                                filesQuestion(copy_list[i][j][2],copy_list[i][j][3]);
                                console.log(answer);                                  
                                if ((type == FILE_REPLACE)||(type == FILE_COPY))
                                {
                                    dict_copy[copy_list[i][j][0]] = type;
                                    break;
                                }
                                else
                                {
                                    array_not_copy.push(copy_list[i][j][0]);
                                    break;
                                }
                            }
                            else
                            { 
                                dict_copy[copy_list[i][j][0]] = FILE_REPLACE;
                            }
                        }
                        else
                        {
                            dict_copy[copy_list[i][j][0]] = FILE_REPLACE;
                        }
                        
                    }
                    else continue;
            }
        else
            // Добавляем оставшиеся файлы на уровнях, которые глубже корня
            for (var j = 0; j < copy_list[i].length; j++)
                if(i == 0)
                { 
                    dict_copy[copy_list[i][j][0]] = FILE_REPLACE;
                }
                else 
                    if (array_not_copy.indexOf(copy_list[i][j][1]) == -1)
                    {
                        dict_copy[copy_list[i][j][0]] = FILE_REPLACE; 
                    }

    }
}


Вопрос, как дождаться от пользователя нажатия на кнопочку и только тогда идти дальше?
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2013, 14:49
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

думаю, что никак.
вот у вас есть скрипт и в середине вызывается filesQuestion и вы хотите чтобы после выбора скрипт продолжился..

разбейте начальный скрипт на 2 блока. до вызова filesQuestion и после.. и весь код, который идет после вызова filesQuestion поместите его в функцию callback. при клике она же вызывается..
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать диалоговое окно Dim@ Общие вопросы Javascript 12 04.02.2016 09:35
как перенести содержимое ответа браузера в диалоговое окно TommyTunec Элементы интерфейса 0 15.04.2013 11:36
Не закрывается диалоговое окно Jopses jQuery 7 19.02.2013 16:14
Реализация удаления элемента через диалоговое окно Harvey jQuery 9 04.06.2012 11:34
Диалоговое окно внутри контейнера с overflow:hidden debugx (X)HTML/CSS 1 22.08.2011 13:06