Я пытаюсь создать contenteditable
, у которого есть чип-элементы внутри него, которые должны быть перетащить & dropable. Вы можете взглянуть на эту плохо работающую вещь на my github repo.Как получить упакованные данные как HTML из DropEvent?
История о том, как я доработал до сих пор, - это еще один, и после борьбы за дней теперь я наконец смог найти решение, которое, кажется, работает, скажем, 90% всех случаев.
Одной из нерешенных проблем, хотя в том, что можно выбрать текст и перетащить & падение его внутри этой области текста:
Выбор здесь будет что-то вроде «lling <div class="chip">Red Screwdriver</div> an
». Чтобы отключить это, я вижу два варианта:
Отключить выбор текста вообще - чего я не смог добиться до сих пор - или взглянуть на событие перетаскивания и проверить содержимое перетаскиваемого HTML. Моя проблема в том, что я не знаю, как я могу это получить. Так как я только хочу, чтобы один единственный элемент является сопротивление & упал в то время, я мог сравнить «lling <div class="chip">Red Screwdriver</div> an
» на мой перетащили элемент:
String draggedHtmlDataAsString = event.getDraggedHtmlDataAsString();
if(this.draggedElement.getHtml().equals(draggedHtmlDataAsString) == false) {
// Don't accept data
} else {
// Accept data
}
, но я не знаю, как я могу получить эти данные из события. Чистое решение GWT/Java так же хорошо, как решение JavaScrit/JSNI для меня.
Любые предложения, которые были бы намного лучше, чем это приветствуются.
Я также попытался запретить выбор, но смотрите сами ..
Я уже пошел по этой дороге, и это был полный беспорядок. Это звучит разумно в начале, но, насколько я могу судить, это становится все более волосатым и расстраивающим.Но я также не уверен, что это помешает пользователю выбрать текст внутри текстовой области и испортить мой процесс перетаскивания. – displayname
Я обновил свой ответ. Однако с предлагаемым подходом вам не нужно запрещать пользователям выбирать текст. –
У меня уже есть такие строки в моей css ^^ Проблема в том, что по какой-то причине это не работает. Я добавил скриншот к моему вопросу. – displayname