Как проверить, является ли элемент «перетаскиваемым», «перетаскиваемым» или другим? - PullRequest
30 голосов
/ 21 ноября 2011

У меня есть куча элементов с jQuery. Некоторые перетаскиваемы, некоторые сбрасываются, а некоторые - оба. Как я могу определить, является ли элемент перетаскиваемым или сбрасываемым?

Ответы [ 4 ]

27 голосов
/ 21 ноября 2011

Вы также можете использовать jQuery data(), как это ..

if ($(elem).data('draggable')) {
        alert("yes");
}
else {
        alert("no");
}

if ($(elem).data('fooable')) {
        alert("yes");
}
else {
        alert("no");
} 

Смотрите здесь: http://bootply.com/60153

15 голосов
/ 08 апреля 2013

Это работает для меня с JQuery 1.10.2

if ($("el").data('uiDraggable')){ //or uiDroppable
   alert("draggable")
} else {
   alert("not draggable")
}

В качестве альтернативы можно вызвать метод .data () без аргумента

$("el").data()

Это должно напечатать что-то вроде

Object { uiDraggable : $. (Анонимная функция). (Анонимная функция)}

где вы можете увидеть свойства объекта.

6 голосов
/ 21 ноября 2011

Для перетаскиваемых элементов:

$(elem).is('.ui-draggable')

, или вы можете filter, или просто выберите $('.ui-draggable');.

Для сбрасывания вы должны использовать .ui-droppable, изменяемый размер - .ui-resizable выбирается .ui-selectable для контейнера, хотя вы выбираете элементы .ui-selectee, сортируемый .ui-sortable для контейнера.

0 голосов
/ 04 декабря 2016

Я использую Modernizr:

if (Modernizr.draganddrop) {
// use drag and drop
}
...