JavaScript拖放无法在iPad上运行

时间:2014-01-30 12:42:35

标签: javascript html ipad drag-and-drop touch

我有这个拖放代码,除了在iPad上运行良好,任何人都可以给出任何理由吗?

它接缝似乎无法识别它可以被拖动的事实而不是其他任何东西

JS Fiddle

<span class="draggable" id="drag1" draggable="true" ondragstart="drag(event)">drag</span>
<span class="draggable" id="drag2" draggable="true" ondragstart="drag(event)">drop</span>
<br />
This is a sample 
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
and 
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
sentence.

JavaScript的:

function allowDrop(ev){
        ev.preventDefault();
      }
      function drag(ev){
        ev.dataTransfer.setData("Text",ev.target.id);
      }
      function drop(ev){
        ev.preventDefault();
        var data=ev.dataTransfer.getData("Text");
        ev.target.parentNode.replaceChild(document.getElementById(data), ev.target);
        document.getElementById(data).className = "";
      }

2 个答案:

答案 0 :(得分:4)

您的问题是大多数移动浏览器都不支持HTML5中的“拖放”功能(带有一点JavaScript)。 Click here获取支持的列表。

我建议使用支持所有移动浏览器的替代方法。请参阅此评论并提供更多说明:https://stackoverflow.com/a/9547931/2482557

这可能是您想要查看的内容:jQuery UI Touch Punch

答案 1 :(得分:0)

iOS 11最终会正确支持draggable="true"http://caniuse.com/#feat=dragndrop)。在此之前,对于所有其他设备,您可以使用polyfill,例如 https://www.npmjs.com/package/drag-drop-polyfill 要么 https://github.com/Bernardo-Castilho/dragdroptouch无需调整代码即可插入功能。