我可以将图像拖放到每周吃一次的篮子里
如果一个人每周吃五次以上的食物或者他从不吃这个食物怎么办?
例如,如果一个人每周吃一次西瓜,尝试将西瓜图像从项目拖动并释放到篮子中,这些点数会增加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
答案 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更改为类。