@andrewwwmath

Как исправить неверное определение координат элемента draggable после перетаскивания?

На странице несколько div'ов, любой из них пользователь может перемещать неограниченное количество раз. После каждого перемещения требуется определять новые координаты перемещенного div'а.
С div[0] это получается, координаты действительно каждый раз новые.
А вот во всех других случаях (div[1], div[2]...) определяемые координаты каждый раз одни и те же - как после первого перемещения.
Попробовал очищать переменные - не сработало.
В чем может быть причина? Что стоит проверить, на что обратить внимание?

Подключены jQuery и jQuery UI.
JS:
$(document).ready(function(){ 
  $(".rD").draggable({
            stop: function(event, ui) { 
					// определить индекс элемента
					id = $(this).index();
					// получить координаты этого элемента
					rect = document.getElementsByTagName("div")[id].getBoundingClientRect();
					alert("top:" + rect.top + ", left: " + rect.left);
					// очистка переменных не исправила проблему
					delete rect;
					delete id;
				}
});
  • Вопрос задан
  • 270 просмотров
Решения вопроса 1
@serega_kaktus
Программист-самоучка, фрилансер
Зачем вы лишние манипуляции делаете, stop выполняется в области видимости перемещаемого объекта и доступен как this
$(document).ready(function(){ 
  $(".rD").draggable({
            stop: function(event, ui) { 
          alert("top:" + $(this).offset().top + ", left: " + $(this).offset().left);
        }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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