jQueryUI сортируемое, перетаскиваемое событие возврата - PullRequest
4 голосов
/ 15 августа 2010

У меня проблема с jQuqeryUI.Я хотел бы запустить некоторый код всякий раз, когда элемент перетаскивается на недопустимую цель.Насколько я вижу, для этого не существует заранее определенного события, но я думал о том, чтобы объединить информацию из следующих событий: закончить, удалить, удалить и остановить, чтобы достичь этого.Однако это может звучать так, как будто это будет беспорядок, есть ли более чистый способ сделать это?

1 Ответ

7 голосов
/ 15 августа 2010

Вы также можете передать метод в параметр revert , например, если мы возьмем демонстрационный пример, подобный следующему:

<div id="draggable" class="ui-widget-content">
    <p>I revert when I'm not dropped</p>
</div>
<div id="droppable" class="ui-widget-header">
    <p>Drop me here</p>
</div>​

Затем на вашем перетаскиваемом элементе вы можете вычислитьследует ли вернуться, как это:

$("#draggable").draggable({ 
    revert:  function(dropped) {
       var dropped = dropped && dropped[0].id == "droppable";
       if(!dropped) alert("I'm reverting, what a cruel world!");
       return !dropped;
    } 
});

Вы можете попробовать здесь , передаваемый параметр dropped - это элемент, на который он был отброшен, это .droppable(),это просто false, если он приземлился где-либо еще.

Или, если вы используете accept параметр , вы можете рассчитать, как это:

var dropped = dropped && $(this).is(dropped.droppable('option', 'accept'));

Используется селектор принятия и .is() для проверки соответствия.

Демонстрацию этого можно посмотреть здесь .

...