Событие ondragend
Определение и использование
Когда пользователь завершает перетаскивание элемента или текстового выбора, происходит событие ondragend.
Перетаскивание - это очень распространенная функция в HTML5. Это когда вы "хватаете" объект и перетаскиваете его в другое место. Чтобы узнать больше, читайте наши статьи о Перетаскивание HTML5HTML руководство.
Комментарий:Чтобы сделать элемент перетаскиваемым, используйте глобальное Свойство draggable HTML5。
Совет:По умолчанию, ссылки и изображения перетаскиваются, и не требуется свойство draggable.
В различных этапах операции перетаскивания используются множество событий, и могут произойти:
События, запускаемые на источнике (элементе):
- ondragstart - когда пользователь начинает перетаскивать элемент
- ondrag - когда элемент перетаскивается
- ondragend - когда пользователь завершает перетаскивание элемента
События, запускаемые на целевой точке:
- ondragenter - когда перетаскиваемый элемент enters целевую точку
- ondragover - когда перетаскиваемый элемент находится на целевой точке
- ondragleave - когда перетаскиваемый элемент удаляется от целевой точки
- ondrop - когда перетаскиваемый элемент放置ен на целевую точку
Пример
Когда пользователь завершает перетаскивание элемента <p>, выполняется JavaScript:
<p draggable="true" ondragend="myFunction(event)">Перетащите меня!</p>
Ниже страницы есть больше примеров TIY.
Грамматика
В HTML:
<элемент ondragend="myScript">
В JavaScript:
объект.ondragend = function(){myScript};
В JavaScript, используйте метод addEventListener():
объект.addEventListener("dragend", myScript);
Комментарий:Internet Explorer 8 и более ранние версии не поддерживают Метод addEventListener()。
Технические детали
Бублящее: | Поддерживается |
---|---|
Отменяемое: | Не поддерживается |
Тип события: | DragEvent |
Поддерживаемые HTML теги: | Все HTML элементы |
Версия DOM: | Уровень 3 событий |
Поддержка браузеров
Числа в таблице указывают на первую версию браузера, которая полностью поддерживает это событие.
Событие | Chrome | IE | Firefox | Safari | Opera |
---|---|---|---|---|---|
ondragend | 4.0 | 9.0 | 3.5 | 6.0 | 12.0 |
Более примеров
Демонстрация всех возможных событий перетаскивания:
<p draggable="true" id="dragtarget">Перетащите меня!</p> <div class="droptarget">Сбросьте здесь!</div> <script> /* ----------------- События, инициируемые на цели перетаскивания ----------------- */ document.addEventListener("dragstart", function(event) { // Метод dataTransfer.setData() устанавливает тип и значение данных, передаваемых при перетаскивании event.dataTransfer.setData("Text", event.target.id); // При начале перетаскивания элемента p выводится текст document.getElementById("demo").innerHTML = "Начато перетаскивание элемента p."; // Изменяется непрозрачность перетаскиваемого элемента event.target.style.opacity = "0.4"; }); // При перетаскивании элемента p изменяется цвет выводимого текста document.addEventListener("drag", function(event) { document.getElementById("demo").style.color = "red"; }); // После завершения перетаскивания элемента p выводится текст и восстанавливается непрозрачность document.addEventListener("dragend", function(event) { document.getElementById("demo").innerHTML = "Завершено перетаскивание элемента p."; event.target.style.opacity = "1"; }); /* ----------------- События, возникающие при放置е на целевую область ----------------- */ // При входе в droptarget элемента, который можно перетаскивать, изменить стиль рамки DIV document.addEventListener("dragenter", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = "3px dotted red"; } }); // По умолчанию данные/элементы не могут быть размещены в других элементах. Чтобы разрешить размещение, необходимо阻止 стандартную обработку элементов document.addEventListener("dragover", function(event) { event.preventDefault(); }); // При выходе из droptarget элемента, который можно перетаскивать, сбросить стиль рамки DIV document.addEventListener("dragleave", function(event) { if ( event.target.className == "droptarget" ) { event.target.style.border = ""; } }); /* При放置 - предотвратить стандартную обработку данных браузером (по умолчанию данные открываются как ссылка) Сбросить цвет текста и цвет рамки DIV Получите данные перетаскивания с помощью метода dataTransfer.getData() Перетаскиваемые данные - это идентификатор элемента, который перетаскивают ("drag1") Прикрепить элемент, который перетаскивают, к элементу назначения */ document.addEventListener("drop", function(event) { event.preventDefault(); if ( event.target.className == "droptarget" ) { document.getElementById("demo").style.color = ""; event.target.style.border = ""; var data = event.dataTransfer.getData("Text"); event.target.appendChild(document.getElementById(data)); } }); </script>