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 に答える