2011-08-30 7 views
8

私は、プレーヤテキスト(ブラウザの外部)をテキストエリアにドラッグアンドドロップしてこのイベントを聞きたいと思っています。jQueryを使ってテキストエリアにテキストをドラッグアンドドロップする方法を教えてください。

少なくともクロムでは、.change()はこれを認識せず、jQueryUI .droppable()はプレーンテキストではなくhtml要素でのみ機能するようです。どんな提案も大歓迎です。

答えて

14

これはIE7 +、FF6、とChrome(Safariで動作しない)で正常に動作するようです:

$("textarea") 
    .bind("dragover", false) 
    .bind("dragenter", false) 
    .bind("drop", function(e) { 
     this.value = e.originalEvent.dataTransfer.getData("text") || 
      e.originalEvent.dataTransfer.getData("text/plain"); 

     $("span").append("dropped!"); 

    return false; 
}); 

(基本的にthis related answerから適応)

例:http://jsfiddle.net/2cJZY/ ルックスdragover(とdragenter)のイベントをキャンセルしてChromeのdropイベントをキャッチする必要があります。

+0

ただし、ドラッグされているテキストはテキストエリアに配置されなくなりました – dave

+0

@dave:Ach;私はもっ​​と注意を払って、すみませんでした。 –

+0

問題なく、任意にドラッグされているものをキャプチャする方法はありますか? – dave

0

onfocusのような別のイベントをチェックするのはどうですか?

テキストエリアの値をテキストエリアのonfocusに格納し、変更が加えられたかどうかを確認します。

+0

onFocusはいずれもトリガーしません – dave

関連する問題