我可以将图像拖放到每周吃一次的篮子中

如果一个人每周吃五次以上的食物,或者他从来没有吃过该怎么办?

例如,如果一个人每周吃一次西瓜,请尝试从“物品”中拖动并释放西瓜图像,以将点数增加30。

如果同一个人每周吃五次西瓜怎么办,如何提高他的分数?

这是一个脚本

var myscore=0;
function dragStart(ev) {
  ev.dataTransfer.effectAllowed='move';
  ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
  ev.dataTransfer.setDragImage(ev.target,0,0);
  return true;
}
function dragEnter(ev) {
  event.preventDefault();
  return true;
}
function dragOver(ev) {
  return false;
}
function dragDrop1(ev) {
  var src = ev.dataTransfer.getData("Text");
  if(!ev.target.contains(document.getElementById(src))){
    ev.target.appendChild(document.getElementById(src));
    ev.stopPropagation();
    var cal=0;
    switch(src){
      case "image1": cal = 20; break;
      case "image2": cal = 30; break;
      case "image3": cal = 40; break;
      case "image4": cal = 50; break;
      case "image5": cal = 60; break;
      default: cal=10;
    }
    myscore=myscore-cal;
    document.getElementById('Score').innerHTML=myscore;
  }
  return true;
}
function dragDrop2(ev) {
  var src = ev.dataTransfer.getData("Text");
  if(!ev.target.contains(document.getElementById(src))){
    ev.target.appendChild(document.getElementById(src));
    ev.stopPropagation();
    var cal=0;
    switch(src){
      case "image1": cal = 20; break;
      case "image2": cal = 30; break;
      case "image3": cal = 40; break;
      case "image4": cal = 50; break;
      case "image5": cal = 60; break;
      default: cal=10;
    }
    myscore=myscore+cal;
    document.getElementById('Score').innerHTML=myscore;
  }
  return true;
}


这是一个Fiddle

最佳答案

好的,这是交易。我添加了一个功能来复制food div,从而使您可以将其任意拖放。

function duplicate(x) {
    var clone = x.cloneNode(true);
    clone.id = ""
    clone.onclick = duplicate;
    x.parentNode.insertBefore(clone, x.nextSibling);
}


这是fiddle

这样,您可以根据需要放入任意数量的西瓜。问题是您可以通过单击将其中的项目相乘。我没有足够的时间来修复错误,但是您现在可以自己考虑一下。有空的时候我会清理脚本。

PS:出于乘法目的,我将id更改为class。

08-08 06:34