html5拖放具有相同ID的div

时间:2012-05-13 10:42:43

标签: html5 drag-and-drop

我认为标题非常自我解释。 我有许多从PHP代码生成的div,从数据库中获取产品。 问题是当我在两个容器(也是div)之间拖动它时,我不能将它们全部返回到第一个容器,因为产品div id是相同的,并且它从容器1重复 - > 2,而不是从容器2向后 - > 1.(2个容器,所有产品div都有相同的ID)。 我可以通过在产品的div ID中添加+1来解决这个问题(所以他们有不同的id),但这样我就不能使用css中的id了。有解决方案吗 这是js代码

<script type="text/javascript">
            function allowDrop(ev){
                ev.preventDefault();
                }
            function drag(ev){
                ev.dataTransfer.setData("Text",ev.target.id);
                }
            function drop(ev){
                if (ev.target.id == "container"){
                var data=ev.dataTransfer.getData("Text");
                ev.target.appendChild(document.getElementById(data));
                ev.preventDefault();
                }}
        </script>

提前致谢

3 个答案:

答案 0 :(得分:1)

您不能拥有两个具有相同ID的div。尝试使用类。

您的drop()函数应该是这样的:

function drop(ev){
   if ( ev.hasClass('container') ) {
            // do some stuff
   }
}

您可以使用jQuery .addclass()方法动态添加类。

答案 1 :(得分:1)

ID必须是唯一的,才能使HTML有效。当您复制ID时,会发生奇怪的事情。即使你设法让它在一个浏览器中运行,其他人也可能以不同的方式处理事情。您可以尝试使用类。

答案 2 :(得分:0)

我通过使用增加的id为php生成的div解决了这个问题。怎么也不是我想要的解决方案之一。 谢谢你试图帮助