Как вы можете проверить, над каким элементом находится ваш перетаскиваемый элемент? (JQuery) - PullRequest
6 голосов
/ 21 декабря 2010

У меня есть два списка. Первый состоит из перетаскиваемых предметов (например, this ). Он связан со вторым, который является сортируемым списком (например, this ).

Элементы из первого списка можно добавить во второй список, перетащив их туда. Затем они клонируются и становятся зелеными, чтобы пользователь мог видеть их несохраненные дополнения.

Я хочу, чтобы при перетаскивании элемента из второго списка он был помечен для удаления или отправлен обратно в первый список (если это несохраненное дополнение). Однако я также хочу, чтобы люди могли сортировать второй список.

Так что, если они вытаскивают предмет и отпускают мышь, он должен быть удален. Если они перетаскивают элемент и возвращаются обратно, он не должен быть удален.

Я попытался обернуть обработчик mouseup внутри сортировки , и в результате я работал, но тогда вы не можете сортировать элементы в списке.

Есть идеи, где мне взять это?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

Используя другой метод, кажется, что это грязнее, чем я думал.Я еще не тестировал в IE, который, скорее всего, откроет новую банку с червями, поэтому я позволю перетаскивать только сортировку и добавлю кнопку удаления.Ура,

ню

0 голосов
/ 22 декабря 2010

Вам необходимо привязать событие сброса в целевом списке (идентификатор «droplist»), например так:

$("#droplist").bind( "drop", function(event){
    $(this).append( event.dragTarget ); // or use prepend to put it at the top
    console.log("Dropped " + event.dragTarget.title);
    // trigger another event to do the work around checking if it is an unsaved addition
})

Чтобы удалить элемент при перетаскивании, вы можете попробовать привязать элемент контейнера вокруг списков.

$("#background").bind( "drop", function(event){
    event.dragTarget.remove(); // guessing here
})

Фрагмент кода будет полезен, чтобы помочь в дальнейшем.

...