用于拖放img的JavaScript不适用于Ipad/Iphone

用于拖放img的JavaScript不适用于Ipad/Iphone,javascript,iphone,ipad,Javascript,Iphone,Ipad,新问题!我需要让它在Ipad/Iphone上工作 Internet Explorer问题已解决 更改了ev.dataTransfer.setData(“内容”,ev.target.id);至ev.dataTransfer.setData(“文本”,ev.target.id) 我现在正在从事一项网络教育,其中一部分是拖放式查询。 它在Chrome和Firefox中运行良好,但在Explorer中不起作用。 我是JS的新手,对微软的“标准”不太熟悉。 如果我的英语不好,但不是我的母语,请原谅 JS代

新问题!我需要让它在Ipad/Iphone上工作

Internet Explorer问题已解决

更改了ev.dataTransfer.setData(“内容”,ev.target.id);至ev.dataTransfer.setData(“文本”,ev.target.id)

我现在正在从事一项网络教育,其中一部分是拖放式查询。 它在Chrome和Firefox中运行良好,但在Explorer中不起作用。 我是JS的新手,对微软的“标准”不太熟悉。 如果我的英语不好,但不是我的母语,请原谅

JS代码:

var i = 0;

function allowDrop(ev)
{
  ev.preventDefault();
}

function drag(ev)
{
  ev.dataTransfer.setData("content",ev.target.id);
}

function drop(ev)
{
  ev.preventDefault();
  var image =ev.dataTransfer.getData("content");

  if (ev.target.id == document.getElementById(image).getAttribute('data-div'))
  { 
    ev.target.appendChild(document.getElementById(image));
    i++;

if(i == 9)
{
    document.getElementById('next').style.display="inline";
}
  }
  else
  {
     alert("Wrong");
  }
}
Html代码:

<div id="box">
    <div class="drop" id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div4" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div5" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div6" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div7" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div8" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    <div class="drop" id="div9" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</div>

<div id="pic">
    <img class="drag" id="drag1" data-div="div1" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag2" data-div="div2" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag3"  data-div="div3" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag4"  data-div="div4" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag5"  data-div="div5" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag6"  data-div="div6" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag7"  data-div="div7" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag8"  data-div="div8" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
    <img class="drag" id="drag9"  data-div="div9" src="http://images.stockfreeimages.com/866/sfi/free_8660001.jpg" draggable="true" ondragstart="drag(event)">
</div>

<div id="next"> 
    <a href="q2.php" target="content"> Nästa </a>
</div>
非常感谢你的帮助


//Emil

IE不通过函数参数发送事件,而是作为
窗口
对象的一部分。因为您调用了事件参数
ev
,所以它不知道这实际上是
event

如果您想在IE中使用事件,您必须为每个窗口(在您的情况下)编写以下代码行作为第一行:

或者,您可以将代码中
ev
的每个实例替换为
event
,因为窗口参数可以隐式使用


来源:

您使用的是什么版本的Internet Explorer?如果你使用IE开发者工具来调试它,你会得到什么错误?我使用IE 11,我在ev.dataTransfer.setData(“content”,ev.target.id)上得到一个错误;您收到了什么错误消息?我指的是出现在失败代码行下方的红白相间的消息。错误消息说“{exception}发生意外调用以获得对方法或属性的访问权。”经过大量谷歌搜索,我发现了一个错误:change ev.dataTransfer.setData(“content”,ev.target.id);至ev.dataTransfer.setData(“文本”,ev.target.id);谢谢你的时间,我真的很欣赏!
var CB = 
{
addEvent : function(element, event, action)
{
    if (element.addEventListener)
    {
        element.addEventListener(event, action, false);
    }
    else
    {
        element.attachEvent("on" + event, action);
    }
}
}
ev = ev || window.event;