JackShcherbakov
@JackShcherbakov

Как создать переменную, которая содержит значение элемента-соседа?

Имеется код https://codepen.io/CitizenOne/pen/QMXGoo (на codePen jQuery UI не работает).

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

Вот кусочек кода
var $object;
var $text;
 		$('.sortlist').on('click', '.delete', function() {
 			$object = $(this).parent('li');
                        $text = ????; //Пробовал сделать что-то типа $object.find('.task');
 			$('#dleteQuestion').dialog('open');
 		});
 			$('#dleteQuestion').dialog({
			modal : true,
			autoOpen : false,
			buttons : {
				'Да' : function(){	
						$('#dleteQuestion').dialog('close');	
				 			$object.effect('puff', function(){
				 				$(this).remove();
			 				});
				},
				'Отмена' :  function(){
					$('#dleteQuestion').dialog('close');
				}
			}
		});
	});//end

Примерно так выглядит HTML который генерируется остальной частью JS
<li><span class="done">%</span>'
				'<span class="delete">x</span>'//Нажимаем сюда
				 '<span class="edit">r</span>'
				'<span class="sort">4</span>'
				'<span class="task"></span>//Выплывает диалоговое окно с содержимым этого "спана"
</li>

Весь этот li создает пользователь в другом окне, появляющимся после нажатия кнопки добавть (см. CodePen).

Тоесть:
Пользователь создает задание, например "Выйти с псом"
Удалят задание - выплывает диалоговое окно с надписью вы хотите удалить следующий пункт - "Выйти с псом"

Спасибо огромное за ответы!
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
@choupa
Архитектор (обычный, который строит)
Так вы прописываете текст в модальное окно после его закрытия. Надо переставить операцию вставки текста туда, куда надо:

$('.sortlist').on('click', '.delete', function() {
	$object = $(this).parent('li');
	$text = $object.find('.task').text();
	$('#dleteQuestion p').text($text);   // Сюда переставил строку снизу
	$('#dleteQuestion').dialog('open');
});

$('#dleteQuestion').dialog({
	modal : true,
	autoOpen : false,
	buttons : {
		'Да' : function(){	
			$('#dleteQuestion').dialog('close');	
			$object.effect('puff', function(){
				   $(this).remove();
			// Отсюда убрал строку, переставил выше. Эта строка выполнялась после закрытия окна
			});
		},
	'Отмена' :  function(){
		$('#dleteQuestion').dialog('close');
		}
	}
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы