Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.06.2014, 18:25
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

Диалоговое окно: как ожидать закрытия?
При удалении записи в таблице для защиты от случайного нажатия, открывается диалоговое модальное окно.
Перед открытием окна выбранная строка выделяется другим цветом.
Теперь, после открытия окна, надо ожидать кода нажатой кнопки: "Ок" или "Cancel" и соответственно сбросить выделение строчки.

Только почему-то действие происходит сразу, не ожидая действия пользователя в модальном окне.

Как заставить ожидать завершения открытия диалогового окна?
Или передать в функцию закрытия окна дополнительные данные?
function deleteRecord(numrow, id, name){
$('#tr'+numrow).css('background-color','red');
$('#ondelete').dialog({ title: name });
$('#ondelete').dialog('open');
$('#tr'+numrow).css('background-color','#ffffff'); // выполняется сразу! а надо после закрытия мод.окна
}


Или как передать в функцию внешние значения?
$("#ondelete").dialog({
autoOpen: false,
resizable:false,
modal:true,
buttons:{
"Удалить выбранную запись?": function(id){ // в функцию передать ID???
 isdel=true;
 $(this).dialog( "close" );
},
Cancel: function(){
 isdel=false;
 $('#tr'+id).css('background-color','#FFFFFF'); // сюда бы передать id
 $(this).dialog( "close" );
}
}
});


Спасибо!

Последний раз редактировалось Veterinar, 21.06.2014 в 19:07.
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2014, 19:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Veterinar,
<!DOCTYPE HTML>
<html>
<head>
    <title>dialog demo</title>
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <script>
  	$(function ()
  	  {
  	    $('.open').click(function ()
  	      {
  	        var name = 'test', id = 100, numrow = 17;
  	        $('#ondelete').dialog("option", "title", name);
  	        $('#ondelete').dialog("option", "buttons",
  	          {
  	            "Удалить выбранную запись?": function(e) {
  	              alert(id)
  	              // в функцию передать ID???
  	              isdel = true;
  	              $(this).dialog("close");
  	            },
  	          "Cancel": function(e) {alert(id);
  	              isdel = false;
  	              // $('#tr'+id).css('background-color','#FFFFFF'); // сюда передать id
  	              $(this).dialog("close");
  	            }
  	          }
  	        );
            $('#ondelete').on( 'dialogclose', function(event, ui){
             alert(numrow)
            //$('#tr'+numrow).css('background-color','#ffffff'); // выполняется сразу! а надо после закрытия мод.окна

             });
  	        $('#ondelete').dialog('open');
  	      }
  	    );
  	    $("#ondelete").dialog(
  	      {
  	      autoOpen: false,
  	      resizable: false,
  	      modal: true
  	      }
  	    );
  	  }
  	);
  </script>
</head>

<body>
<div id="ondelete" title="Basic dialog"  class="image">
</div>
<button id="opener" class="open" data-image='#dialog'>Open Dialog</button>
</body>
</html>

Последний раз редактировалось рони, 21.06.2014 в 19:14.
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2014, 19:15
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

мда... через жопу, в смысле, через глобальную переменную, передал.
Тока так чот не нравится... Как бы в функции на события диалогового окна передавать по-нормальному?
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2014, 19:17
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, спасибо!
Так и сделал до вашего ответа )))
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2014, 19:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Veterinar,
вы код свой непокажите? а то что-то меня сомнения терзают ))) 14 строка в у меня в коде просто для примера
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2014, 21:49
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, ой, спасибо! Не, всё работает! )))
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2014, 22:26
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

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

Количество записей в таблице после добавления показывается тоже самое, что и было и, соответственно, по индексу удаление не срабатывает.
$('#editDataRefs').after('<tr><td>Ку-ку</td></tr>');
alert('Записей='+document.getElementById('editDataRefs').getElementsByTagName('tr').length);


Alert выводит то же количество строк, что и было до добавления новой.

Спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2014, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Veterinar,
то есть вы добавили строки после таблицы а ищите их в таблице?
Ответить с цитированием
  #9 (permalink)  
Старый 21.06.2014, 23:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Veterinar,
$('#editDataRefs tr:last').after('<tr><td>Ку-ку</td></tr>');
Ответить с цитированием
  #10 (permalink)  
Старый 22.06.2014, 00:58
Профессор
Отправить личное сообщение для Veterinar Посмотреть профиль Найти все сообщения от Veterinar
 
Регистрация: 27.12.2013
Сообщений: 167

рони, спасибо!

Да, ступил я
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать переменную в модальное окно sinsir jQuery 24 20.06.2013 16:59
Ячейка как ссылка (всплывающее окно на jquery)? Алекс-ми Javascript под браузер 0 17.05.2013 18:58
Подскажите как открыть модальное окно "fancybox" из скрипта js dgabets jQuery 1 18.02.2012 18:05
Как сделать справочное окно? Vlaimir Events/DOM/Window 13 05.01.2009 14:06
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09