Jquery ui получает идентификатор элемента droppable, при удалении элемента
Как мы получаем идентификатор элемента droppable, когда выбрасывали элемент? Здесь я использую jquery ui и asp.net mvc.
<table id="droppable">
<tr>
<td style="width:300px;height:50px">Backlog</td>
<td style="width:300px;height:50px">Ready</td>
<td style="width:300px;height:50px">Working</td>
<td style="width:300px;height:50px">Complete</td>
<td style="width:300px;height:50px">Archive</td>
</tr>
<tr id="cart">
<td id="BackLog" class="drag" style="width:120px;height:50px;">
<img class="draggable" id="1234" src="../../Content/themes/base/images/ui-icons_222222_256x240.png" />
</td>
<td id="Ready" class="drag" style="width:140px;height:50px">
</td>
<td id="Working" class="drag" style="width:140px;height:50px">
</td>
<td id="Complete" class="drag" style="width:140px;height:50px">
</td>
<td id="Archive" class="drag" style="width:140px;height:50px">
</td>
</tr>
}
</table>
Здесь я хочу переместить изображение в столбце Ist в другой столбец и получить идентификатор этого столбца.
Для перетаскивания я использую script
<script type="text/javascript">
$(function () {
$(".draggable").draggable({ containment: '#imageboundary', axis: "x" });
$("#droppable").droppable({
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/Project/AddToPhase/' + $(ui.draggable).attr("id") ,
success: function (data) {
$('.result').html(data);
}
});
}
});
});
</script>
Ответы
Ответ 1
Чтобы получить идентификатор как перетаскиваемых, так и отбрасываемых элементов, используйте следующее:
$('.selector').droppable({ drop: Drop });
function Drop(event, ui) {
var draggableId = ui.draggable.attr("id");
var droppableId = $(this).attr("id");
}
Извините, может быть, немного поздно для вас, но я только начал использовать jquery и нуждался в точной вещи.
Ответ 2
jQuery UI руководство по API droppable упоминает, как очень "секретно" получить "drop-on-droppable" в раздела опции greedy
:
event.target
можно проверить, чтобы увидеть, какая droppable получила перетаскиваемый элемент
Но обратите внимание, что event.target
содержит только элемент DOM...
Ответьте на свой вопрос
Вы сможете получить идентификатор в своем обратном вызове droppable
drop
через первый параметр event
.
Pure JS
Свойство: event.target.id
- если идентификатор не задан: пустая строка ""
Атрибут: event.target.getAttribute('id')
- если идентификатор не установлен: null
JQuery
Свойство: $(event.target).prop('id')
- если идентификатор не задан: пустая строка ""
Атрибут: $(event.target).attr('id')
- если идентификатор не установлен: undefined
Пример использования
<script>
$(function(){
$(".droppablesSelector").droppable({
drop: function (event, ui) {
//display the ID in the console log:
console.log( event.target.id );
}
});
});
</script>
Дополнительная информация
Событие
jQuery event system нормализует объект события в соответствии с W3C стандартов. Объект события гарантированно будет передается обработчику событий (не требуется проверка наличия окна.). Это нормализует цель, relatedTarget, которая, metaKey и pageX/Y свойства и предоставляет как stopPropagation(), так и preventDefault() Методы.
Ответ 3
Вы подключите событие "drop"
и опросите элемент, который вы только что сбросили. Элемент, являющийся параметром "ui"
в функции ниже
$( ".selector" ).droppable({
drop: function(event, ui) { ... }
});
Посмотрите документацию .