0

こんにちは、ドラッグ アンド ドロップについて w3.org から例をコピーしました

http://www.w3.org/html/wg/drafts/html/master/editing.html#dnd

 <p>What fruits do you like?</p>
<ol ondragstart="dragStartHandler(event)">
 <li draggable="true" data-value="fruit-apple">Apples</li>
 <li draggable="true" data-value="fruit-orange">Oranges</li>
 <li draggable="true" data-value="fruit-pear">Pears</li>
</ol>
<script>
  var internalDNDType = 'text/x-example'; // set this to something specific to your site
  function dragStartHandler(event) {
    if (event.target instanceof HTMLLIElement) {
      // use the element's data-value="" attribute as the value to be moving:
      event.dataTransfer.setData(internalDNDType, event.target.dataset.value);
      event.dataTransfer.effectAllowed = 'move'; // only allow moves
    } else {
      event.preventDefault(); // don't allow selection to be dragged
    }
  }
</script>

私のjsfiddleでは動作しないようです

http://jsfiddle.net/sivi/3YSLL/

誰かが私に問題を指摘できます。私はプログラミングにまったく慣れていないので、どんな助けもすりおろします。

4

1 に答える 1

1

あなたが抱えている問題は、ウィンドウ内にjavascriptコードを配置することですonload(フィドルも配置するように設定されているという事実に加えてonload)。このように、関数は onload 関数内にのみ存在し、グローバル スコープではアクセスできません。これを削除すると (そしてフィドルを nowrap に設定すると)、動作します:

http://jsfiddle.net/3YSLL/1/

ただし、例に他のコードが含まれていないため、あまり見るべきものはありません。

// MUST BE IN THE GLOBAL SCOPE
var internalDNDType = 'text/javascript'; // set this to something specific to your site
 function dragStartHandler(event) {
     /* ... */
 }
于 2013-09-22T21:06:46.983 に答える