Диалоговое окно
Доброго времени суток всем. Работаю над проектом, и появилась задача копирование файлов на сервере. Что бы копировать файлы надо спрашивать пользователя какой копировать, а какой нет( в случае совпадения). Всю логику сделал, но возникла проблема, надо выкидывать окошко с вопросом. Три кнопки: Копировать, Вставить, Отменить, в зависимости от нажатия на кнопку возвращается то или иное значение( типо 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; } } } Вопрос, как дождаться от пользователя нажатия на кнопочку и только тогда идти дальше? |
думаю, что никак.
вот у вас есть скрипт и в середине вызывается filesQuestion и вы хотите чтобы после выбора скрипт продолжился.. разбейте начальный скрипт на 2 блока. до вызова filesQuestion и после.. и весь код, который идет после вызова filesQuestion поместите его в функцию callback. при клике она же вызывается.. |
Часовой пояс GMT +3, время: 07:52. |