增加吃五次以上的分数

时间:2014-09-03 16:51:51

标签: javascript

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

如果一个人每周吃五次以上的食物或者他从不吃这个食物怎么办?

例如,如果一个人每周吃一次西瓜,尝试将西瓜图像从项目拖动并释放到篮子中,这些点数会增加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

1 个答案:

答案 0 :(得分:1)

好的,这笔交易。我添加了一个复制食物div的功能,因此您可以根据需要多次拖放它。

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

这里是fiddle

通过这种方式,您可以根据需要添加多少西瓜。问题是你可以通过点击它们来增加内部的项目。我没有足够的时间来修复错误,但现在你可以自己思考一下。当我有时间时,我会清理脚本。

PS:为了乘法目的,我将id更改为类。