0

我一直在研究用于拖放框的 JavaScript 代码,用户基本上可以将图像拖入下拉框,当他们拖动特定组合时,它会返回某种消息。例如,如果他们拖入 image1、image3 和 image5,它会返回一条消息。我一直在为此使用 DOM 树,但我不知道如何检查何时拖入多个图像。当一个图像如下所示时,我可以让它工作。任何帮助将一如既往地受到赞赏。

<html>
<head>
    <meta charset ="utf-8">
    <style type="text/css">
        #dragBox {width:400px; height:320px; margin:10px;padding:10px;border:1px solid #aaaaaa;}

        .thumbnails img 
        {
            height: 80px;
            border: 4px solid #555;
            padding: 1px;
            margin: 0 10px 10px 0;
        }

        .thumbnails img:hover 
        {
            border: 4px solid #00ccff;
            cursor:pointer;
        }

    </style>
    <script>
    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");
        var theNode = document.getElementById(data);
        var nodeCopy = theNode.cloneNode(true);

        ev.target.appendChild(nodeCopy);

        if (data == "drag1")
        {
            foodOne();
        }

        //ev.target.removeChild(nodeCopy);

    }

    function foodOne()
    {
        alert("You choose Food One");
    }

    </script>
</head>
<body bgcolor="#333333">
<div class="gallery" align="center">
    <div class="thumbnails">
        <img id="drag1" src="foodOne.jpg" draggable="true" ondragstart="drag(event)"">
        <img id="drag2" src="foodTwo.jpg" draggable="true" ondragstart="drag(event)" >
        <img id="drag3" src="foodThree.jpg" draggable="true" ondragstart="drag(event)">
        <img id="drag4" src="foodFour.jpg" draggable="true" ondragstart="drag(event)">
        </br></br>
        <div id="dragBox" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    </div></br>

</div>
</body>

4

1 回答 1

0

甚至不确定是否存在多滴之类的东西。但是话又说回来,我没有做太多拖放的东西,也许用倍数你会得到一个事件数组?还是某个州说诸如留下出色的下降操作之类的东西?

因此,以我对此的有限了解,对我来说,合乎逻辑的解决方案是有一个类似结果数组的东西,你在每个 drop 上推送 id,然后是一个新函数来检查你的数组是否包含你正在寻找的组合。

于 2013-04-01T13:37:08.143 回答