プロが教えるわが家の防犯対策術!

jquery ui のdraggable,droppableを使って、あるDOMの要素ををtextarea(dropした位置)に挿入したいです。

ドラッグ、ドロップは普通に動かせるのですが、以下の機能が実装できません。
情報お持ちの方、いらっしゃいましたら、お願いします。

ドラッグ中、または、ドロップした瞬間に、textareaのキャレット位置を取得する
実装方法が思いつきません。
(ドロップ時点です。)

欲を言えば、ドラッグ中にキャレット位置を表示させたいです。
※ちょうど、chromeやFFで画像をテキストエリアにドラッグするようなイメージです。

A 回答 (1件)

全部は書けないのでヒントだけ



http://msdn.microsoft.com/en-us/library/ms535861 …

を利用するといい。

後は、

ondragstart
ondragenter
ondragstop
でそれぞれで

event.X
event.Y

を拾えばいい。

互換性はCSS3ぐらいなのか。もともとIE5.5では実装されていたが、正式にはIE9からのようで、仕様がCSS3になるようで、別の動作になる。CSS3対応のブラウザなら動作する。IEはDOCTYPEの変更で対応。

単にondragstartだと、ドラックしている間は、そのオブジェクトがActiveなので、その途中のX,Yは取れない。なので、dataTransferを使えば、途中も拾えるのでドロップした時には、キャレットのX,Yをevent発生ポイントで拾える。

これはDIVにも適用できるので、formオブジェクト以外もOK。

サンプルページがついているので、ためしてください。

jquery uiは

http://jqueryui.com/download

で、デベロッパーをDLするとサンプルが付いてくるので、それをテンプレートとすればわかるはずですが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ちょっといま立てこんでおり、試せていないのですが参考にしたいと思います。

お礼日時:2011/04/08 01:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!