我正在尝试使用拖放功能开发一个测验片段并最终使用此代码,其中始终显示结果为1结果不会递增.....
我尝试了很多方法,但它没有增加......
的javascript:
这是我在
中使用的代码 <script>
function allowDropi(ev)
{
ev.preventDefault();
}
function dragi(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function dropi(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
result1=0;
if(ev.dataTransfer.getData("Text")==="drag2i")
{
result1++;
}
if(ev.dataTransfer.getData("Text")==="dra2i")
{
result1++;
}
if(ev.dataTransfer.getData("Text")==="dr2i")
{
result1++;
}
if(ev.dataTransfer.getData("Text")==="2i")
{
result1++;
}
if(ev.dataTransfer.getData("Text")==="d2i")
{
result1++;
}
document.getElementById('boldStuff6').innerHTML = result1;
}
alert(result1);
</script>
我哪里出错了,请检查我的代码,并帮助我获得结果......
答案 0 :(得分:1)
原因是每次调用此函数时,结果被“result1 = 0”设置为0 ,然后您将其增加。
如果你想保留结果的计数,你需要将结果作为函数的属性。
而不是“result1 = 0”添加:
this.result1 = ( this.result1 ) ? this.result1 : 0; // this will make sure it keeps old stored values from last time you call the function.
并将增量器更改为以下内容:
this.result1++; // or you can use ++this.result1; or even this.result1+=1;
我希望能回答你的问题。
感谢, 斜切