Как предотвратить стиль курсора по умолчанию в Dart, Dartium
Я пытаюсь предотвратить стиль курсора по умолчанию для перетаскивания в Dart. В методе onDragStart я установил стиль курсора на "перемещение", а затем вернулся к значению по умолчанию в onDragEnd:
onDragStart(e) {
prevCursor = placeholder.style.cursor;
placeholder.style.cursor = 'move';
}
onDragEnd(e) {
placeholder.style.cursor = prevCursor;
}
При перетаскивании курсор по умолчанию по-прежнему имеет стиль "не разрешен". Я пробовал много методов, чтобы предотвратить это, таких как предотвращение по умолчанию onSelectStart в методе onDragStart, который был рекомендован как исправление для хрома в javascript, но не работает в Dart:
document.onSelectStart.listen( (e) {
e.preventDefault();
return false;
});
Я также попытался установить значение по умолчанию в CSS, что не совсем так, как мне бы хотелось, но оно все равно не работает:
a:drag {
cursor:move;
}
Какие-либо предложения?
2 ответа
Хм... просто предположение, но, может быть, попытаться выяснить, нужно ли вам также обрабатывать onDragEnter?
Цель перетаскивания устанавливает значок курсора на "недопустимый", если его обработчики отменяют событие перетаскивания и т. Д.
Написание обработчиков для drop-зоны - самое простое решение.
Чтобы обойти проблему, можно перехватить событие нажатия кнопки мыши, событие перемещения мыши и т. Д. И использовать его для перемещения элемента, как я сделал здесь: перемещение элементов путем перетаскивания в Dart
Этот парень объясняет связанную проблему более подробно: http://mereskin.github.io/dnd/
Вроде не имеет значения, но в некоторых браузерах использовать только значок курсора по умолчанию, который доступен при перетаскивании элемента, и нет способа изменить это значение по умолчанию.