Мы используем плагин Draggable JQuery UI и должны запрещать перекрытие между нашими элементами. Мы могли бы написать некоторое обнаружение столкновения, но предпочли бы использовать проверенный пакет. Какие-либо предложения?
Пожалуйста, порекомендуйте плагин JQuery, который обрабатывает обнаружение столкновений для перетаскиваемых элементов
Ответ 1
Вы можете попробовать jquery-collision плюс jquery-ui-draggable- столкновение. Полное раскрытие: я только что написал и выпустил их на sourceforge.
Первое позволяет это:
var hit_list = $("#collider").collision(".obstacle");
который является списком всех ".obstacle", которые перекрывают "#collider".
Вторая позволяет:
$("#collider").draggable( { obstacle: ".obstacle" } );
Что дает вам (между прочим) событие "столкновения" для привязки к:
$("#collider").bind( "collision", function(event,ui){...} );
И вы даже можете установить:
$("#collider").draggable( { obstacle: ".obstacle", preventCollision: true } );
чтобы предотвратить "#collider" от когда-либо перекрывающегося ".obstacle" при перетаскивании.
Ответ 2
Быстрый поиск плагинов jQuery:
Похоже, это еще рано, но, возможно, стоит проверить.
Ответ 3
Я знаю, что этот вопрос довольно старый, но, может быть, вы найдете это полезным: Плагин проверки конфликтов для jQuery.
Описание на немецком языке, но оно должно быть само собой разумеющимся. Вы можете использовать два отдельных элемента или даже набор элементов и вернуть набор всех сталкивающихся элементов.
Ответ 4
Google сообщает мне, что gameQuery, плагин JQuery, имеет функцию "столкновения":
http://gamequery.onaluf.org/#manual
Найдите слово "столкновение" на странице выше.
Этот поиск Google может предоставить вам несколько других опций:
Ответ 5
Предполагая, но я думаю, что вам нужно будет найти здесь:
Он использует знаменитый файл $.event.special.drag jQuery для создания события drop. Вы можете поместить свой собственный javascript-код под
.bind( "drop", function( event ){
этот элемент внутри этой функции представляет объект с классом "drop", который вы определили, и объект event.dragTarget является объектом, который перетаскивается.
Больше документа на сайте, указанном выше. Это все равно, что мне нужно.