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 代码放在 window 内onload(除了您的 fiddle 设置为也 put it 的事实之外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 回答