0

我正在尝试通过拖放开发一个测验片段,并最终得到此代码,其中始终显示结果为 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>

我哪里错了请检查我的代码并帮助我得到结果......

4

1 回答 1

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;

我希望这能回答你的问题。

谢谢,米特

于 2012-09-27T04:49:14.353 回答