jQuery перекрывающиеся предметы перекрываются - PullRequest
2 голосов
/ 09 октября 2009

У меня есть 1 перетаскиваемый div и 2 сбрасываемых div. Эти 2 сбрасываемых div тоже можно перетаскивать, поэтому может быть шанс, что эти 2 div'а перекрываются. В этой ситуации, когда я перетаскиваю перетаскиваемый элемент div и помещаю его в перекрывающиеся элементы div, можно ли в любом случае убедиться, что он выпал на верхний элемент?

1 Ответ

2 голосов
/ 02 июня 2011

У меня была немного другая проблема: у меня было два типа сбрасываемых предметов, один тип всегда поверх другого.

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

top.droppable({
    over: function( drop_event, drop_ui ) {
      drop_ui.helper.addClass('over_top_element');
    },
    out: function( drop_event, drop_ui ) {
      drop_ui.helper.removeClass('over_top_element');
    },
    drop: function(drop_event, drop_ui) {
      //Handle drop here
    }
});

bottom.droppable({
    drop: function(drop_event, drop_ui) {
        if (!ui.helper.hasClass('over_top_element'))
        {
            //Handle drop here
        }
    }
});
...