使用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,所以我认为我在这里遗漏了一些东西。
答案 0 :(得分:0)
我不确定发生了什么,但您可能想尝试使用visual event书签来确切了解Gmail已绑定到您要删除图片的目标的哪些事件。
答案 1 :(得分:0)
由于您只展示了代码的一小部分,我会指出您可能遇到问题的地方,但您需要更详细地检查它们。我对CoffeeScript不太熟悉,只是编译成普通的javascript,所以这几乎是猜测。
@setDropArea() unless @dragInProgress
:假设drop
从未触发,是否正确设置掉落区域?似乎unless
会将@setDropArea()
置于@dragInProgress
为真时从未设置过。
在dragStarted
和dragEnded
中,添加一些console.log
注意事项以查看触发的方法和时间。可能不是它没有射击,而是它在错误的时间射击。
最后,请看一下:http://strd6.com/2011/01/jquery-drag-image-from-desktop-plugin/ 这似乎是你想要做的(或者至少是类似的),并且可能会给你一些关于你做错的提示。
祝你好运!如果您从这些内容中得到一些结果,请发表评论,我会看看是否可以缩小范围。