2011-07-28 9 views
0

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イベントや、ファイルのアップロードもののほとんどのために働くとイベントがいつものようにクビをキャンセルしています。しかし、何かのために、スキッチ画像のドラッグ - いいえdropイベントが発生します。あなたがMacユーザーの場合、Skitchは画像編集用のツールであり、エディタ自体から削除することができます。

しかし、Skitchの同じドラッグはGmailで動作しますので、ここで何か不足していると思います。

答えて

0

どういうことが起こっているのかわかりませんが、visual eventブックマークレットを使用して、画像を削除しているターゲットにGmailがどのイベントをバインドしているのか正確に確認してみてください。

+0

ありがとうございました。私はそれをチェックしている。 –

0

コードの一部しか表示していないため、問題が発生する可能性がある箇所を指摘しますが、詳細を調べる必要があります。私はあまりにも単純なjavascriptにコンパイル以外のCoffeeScriptに慣れていないので、これはかなり推測です。

@setDropArea() unless @dragInProgressdropは決して発射されません、ドロップ領域は適切に設定されていますか? unlessは、@dragInProgressが真のときには決して設定されていないので、@setDropArea()を設定しないようです。

dragStartedおよびdragEndedには、いくつかの方法が発火しているかどうかを確認するために、console.logの音符を追加します。それは発射ではないかもしれないが、間違ったタイミングで発砲しているかもしれない。

最後に、ここをクリックしてください:http://strd6.com/2011/01/jquery-drag-image-from-desktop-plugin/ これはあなたがやろうとしている(または少なくとも類似している)ようだが、間違っていることについていくつかのヒントを与えるかもしれない。

運が良かった!これらの事柄から何らかの結果が得られた場合は、コメントして、もう少し絞り込むことができます。

+0

ねえ、今日は後でそれらをチェックします。 –

関連する問題