Как предотвратить стиль курсора по умолчанию в 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/

Вроде не имеет значения, но в некоторых браузерах использовать только значок курсора по умолчанию, который доступен при перетаскивании элемента, и нет способа изменить это значение по умолчанию.

Другие вопросы по тегам