Изменить позицию через DOM EVENT FLOW - Jquery / JS - PullRequest
1 голос
/ 28 марта 2020

Я хочу изменить позицию <div> после того, как пользователь перестанет ее перетаскивать. Также число 10 без запятых не работает.

Оно меняется на синий цвет, но позиция не работает. Что я могу сделать? У меня много .screen дел. Спасибо!

$('.screen').draggable({
  stop: function(event, ui) {
    if (parseInt(event.target.offsetTop) < -1) {
      event.target.style.backgroundColor = "blue";
      event.target.style.offsetTop = "10";
    }
  }
})

1 Ответ

1 голос
/ 28 марта 2020

Здесь есть две основные проблемы. Во-первых, offsetTop является свойством объекта Элемент, а не style Элемента.

Во-вторых offsetTop равно только для чтения , поэтому вы не можете использовать его для обновления позиции элемент. Для этого вам нужно установить style.top:

$('.screen').draggable({
  stop: function(event, ui) {
    if (event.target.offsetTop < -1) {
      event.target.style.backgroundColor = "blue";
      event.target.style.top = '10px';
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<div class="screen">Drag me</div>

Также обратите внимание, что offsetTop возвращает целочисленное значение, поэтому parseInt() не требуется.

...