Событие отбрасывания не происходит последовательно - PullRequest
0 голосов
/ 28 июля 2011

Использование HTML5 перетаскивания. Мой код выглядит так:

setupDragDrop: ->
  @currentDoc = tinyMCE.activeEditor.getDoc()
  @currentBody = $(@currentDoc).find('body')
  @drag_div = $(JST.drag_message());

  tinyMCE.dom.Event.add(@currentDoc, 'dragover', @dragStarted)
  tinyMCE.dom.Event.add(@currentDoc, 'drop', @dragEnded)

dragStarted: (event) ->
  @setDropArea() unless @dragInProgress
  event.stopPropagation()
  event.preventDefault()

dragEnded: (event) ->
  event.stopPropagation()
  event.preventDefault()
  files = event.dataTransfer.files
  @resetDropStyle()
  @uploadSelectedFiles(files)

И я отменяю dragover событие и загрузка файла работает для большинства вещей, и события запускаются как обычно. Но для чего-то вроде перетаскивания изображения Skitch - drop событие не запускается. Если вы пользователь Mac, Skitch - это инструмент для редактирования изображений, который позволяет вам удалять материалы из самого редактора.

Но то же самое перетаскивание из Skitch работает в Gmail, поэтому я предполагаю, что здесь что-то не хватает.

Ответы [ 2 ]

0 голосов
/ 08 августа 2011

Поскольку вы показываете лишь небольшую часть своего кода, я укажу место, где у вас могут возникнуть проблемы, но вам нужно изучить их более подробно. Я не слишком знаком с CoffeeScript, за исключением того, что он компилируется в простой javascript, так что это довольно много догадок.

@setDropArea() unless @dragInProgress: Предполагается, что drop никогда не срабатывает, правильно ли установлена ​​область падения? Кажется, что unless установит @setDropArea() как никогда, если @dragInProgress истинно.

В dragStarted и dragEnded добавьте примечания console.log, чтобы узнать, какие методы и когда используются. Возможно, дело не в том, что оно стреляет, а в то время, когда оно не вовремя.

Наконец, взгляните сюда: http://strd6.com/2011/01/jquery-drag-image-from-desktop-plugin/ Похоже, это то, что вы пытаетесь сделать (или, по крайней мере, похоже), и может дать вам некоторые подсказки относительно того, что вы делаете неправильно.

Удачи! Если вы получите какие-либо результаты от любой из этих вещей, прокомментируйте, и я посмотрю, смогу ли я сузить это немного.

0 голосов
/ 28 июля 2011

Я не уверен, что происходит, но вы можете попробовать использовать букмарклет визуальное событие , чтобы точно узнать, какие события Gmail привязал к цели, на которую вы сбрасываете изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...