jQuery событие перетаскивания / отбрасывания - PullRequest
1 голос
/ 01 февраля 2011

Я хочу обработать событие, когда мой перетаскиваемый предмет был уронен, но не внутри моего предмета.До сих пор я мог получить только это:

 $('#myDraggable').draggable({
  stop: function (event, ui) {
      if (event.srcElement.id != 'myDroppable'){
         // Missed
      }
  }
 });

Но проблема в том, что я читаю элемент #myDroppable, когда к нему что-то добавляется.Поэтому в следующий раз я добавлю что-то к этому event.srcElement.id, возможно, не будет myDroppable, но будет идентификатором его новых детей.Я мог бы добавить наложение сверху, но когда есть полоса прокрутки, это становится более сложным.Есть ли другой способ обработать это событие?

1 Ответ

0 голосов
/ 01 февраля 2011
if ($(event.srcElement).parents().andSelf().has("#myDroppable").length === 0)

Возьмите ваш элемент, возьмите всю его родительскую цепочку, добавьте текущий элемент, затем уменьшите его до набора, соответствующего "#myDroppable". Если его длина равна 0, то вы не бросаете его в свой пипетку.

Я не уверен с этим плагином, но обычно this === event.srcElement

.parents .andSelf .has

...