JQueryUI перетаскиваемый / сбрасываемый получить верхний выпадающий div

0

У меня проблема, которая лучше всего иллюстрируется этой скрипкой, на которую я наткнулся:

http://jsfiddle.net/JSFU4/3/

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

Из того, что я понял, прочитав документы, для этого не существует готового решения, но, возможно, вариант может состоять в том, чтобы получить "реальный" верхний div, в котором удаленный элемент был удален, и избежать действия, если это переполненный div. (Это всего лишь идея).

Другими словами, скажем, у меня есть droppable div, называемый droppable-div, div, который над ним называется on-top-non-droppable-div... могу ли я обнаружить это в функции сброса?

dropped: function(ev, ui){
    // somehow detect if the first target to receive the draggable event
    // is #on-top-non-droppable-div, and don't do anything if it is.
}
Теги:
jquery-ui-droppable
jquery-ui-draggable

1 ответ

4
Лучший ответ

Возможно, это соответствует вашим потребностям:

$(function () {
    $('.drag').draggable();
    $('.drop, .overlay').droppable({
        tolerance: 'touch',
        hoverClass: 'drop-hover',
        accept: '.drag',
        drop: function (event, ui) {
            if ($(this).hasClass('overlay')) {
                ui.draggable.draggable({
                    revert: true
                });
            } else {
                ui.draggable.draggable({
                    revert: "invalid"
                });
            }
        }
    });
});

DEMO

Здесь пример установки tolerance: 'pointer',

DEMO

  • 0
    Эй, спасибо за это. Я не решаюсь устанавливать наложенные пометки на обложках, потому что их много ... что еще хуже, некоторые должны пропускать перетаскиваемые объекты. Это жизнеспособное решение, но я думаю, что получить самый верхний div при падении было бы легче.
  • 0
    Вы можете использовать document.elementFromPoint , это чтобы дать вам идею: jsfiddle.net/JSFU4/10 Но тогда поведение может быть не совсем то, что вы ожидаете. В любом случае, установка плагина droppable в .overlay не должна быть проблемой, даже если есть много элементов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню