2016-03-24 10 views
0

文字レベルでドラッグ可能なHTML要素を追加できるテキストエリアを作成しようとしています。この質問は関連するto another I am currently askingですが、それはGWTに関連しています。このようなテキスト領域を作成するために、私はそれを段階的に行う方法を理解しようとしています。これは私がこれまでに得たものである:なぜ私はスパンをドラッグできないのですか?代わりにimgをドラッグできますか?

JSFiddle

はJavaScript:

function smartdrag(e) { 

    var id = e.target.getAttribute('id'); 

    if (id!=='plzdragme' && id !== 'plzdragmeimg') { 
     e.stopPropagation(); 
     e.preventDefault(); 
     return; 
    } 
} 

HTML:

<div contenteditable="true" ondragstart="smartdrag(event)"> 
    More blah 
    <img src="http://lorempizza.com/80/80/2" id="plzdragmeimg" draggable="true" class="fancy-img"/> 
    about 
    <span id="plzdragme" contenteditable="false" class="fancy" draggable="true">DRAGME</span> 
    Sparta! 
</div> 

しかし、いくつかの理由で、私は唯一のimgをドラッグすることができます。私が実際に必要とするのは、spanまたはそれ以上のものをドラッグできることです。div ..

どうすればいいですか?

PS:できるだけjQueryを入れないでください。

+0

実際にドラッグするコードはどこにありますか?あなたはおそらくいくつかのライブラリを使用していますか? – Glubus

+0

あなたは毎日習うと思います! HTML5がこの機能を持っていることを知らなかった。 – Glubus

+0

http://www.html5rocks.com/jp/tutorials/dnd/basics/が役立ちます。 (画像はデフォルトでドラッグ可能です)。 – putvande

答えて

0

HTML5のドラッグがどのように動作するかを少し調べてみましたが、DOM要素をドラッグ可能にするには、新しい 'ドラッグ可能な'属性を追加してtrueに設定する必要があります。あなたの問題についての混乱する部分は、画像とリンクがdraggable by defaultです!

あなたのスクリプトがあなたの関数smartdragが存在しないというエラーをスローするため、私は実際にこれをうまくテストできませんでした。

私はあなたの問題を完全に網羅しているので、この可能な解決策についてかなり期待していますが、信頼できるドキュメントから来ています。

+0

JSFiddleでスクリプトをテストしましたか?これは実際に動作するはずです。私はこの 'draggable'属性を知っていて、私の問題は物事をドラッグ可能にしていない*。私の問題は、それらが一緒にテキストエリアにある文字の間にそれらを配置していることです。私はあなたが示している例を見てきましたが、ここで私の特定のタスクに使用することはできません: – displayname

関連する問題