0

ボタンを使用してチェス盤を設計しました。最初はボタンのすべての値が null になります。ページをロードすると、すべてのピースが表示され、コードは次のようになります。

<input type="button" id="A8" value="" style="background:#FFE4C4;font-size: 70px;height:90;width:100" onclick="check(this.id)">

onLoad 関数では、チェスの駒の ASCII 文字が次のように割り当てられます。

document.getElementById('A1').value=String.fromCharCode(9814);

今私が欲しいのは、2つのボタンをクリックすると、ワンピースをボタンから別のボタンに変更することです。次のスクリプトで多くのことを試しました

function check(clicked_id) {
    var Button_2 = "";
    if (i < 2) {
        i++;
        // alert("i:"+i);        
        if (i == 1) {
            Button_1 = clicked_id;
            B1_val = document.getElementById(Button_1).value;
            alert("B1 Button val:" + B1_val);
        }
        if (i == 2) {
            var Button_2 = clicked_id;
            B2_val = document.getElementById(Button_2).value;
            alert("b1 val:" + B1_val);
            alert("B2 val:" + B2_val);
            B2_val = B1_val;
            B1_val = "";
            alert("B1 val:" + B1_val + "B2 val:" + B2_val);
        }
    } else {
        alert("Only 2 butons should press..i:" + i);
        i = 0;
    }
    // alert("clcked a button:"+clicked_id);
}

しかし、コードは機能していません

4

1 に答える 1

0

最初のクリックの位置から 2 番目のクリックの位置に値を移動するだけの場合は、次のようにかなり簡単に行うことができます。

var lastClick;

function check(id) {
    var src, dest;
    if (!lastClick) {
        // no previous click so just store the location of this first click
        lastClick = id;
    } else {
        // move value from lastClick id to new id
        src = document.getElementById(lastClick);
        dest = document.getElementById(id);
        dest.value = src.value;
        src.value = "";
        lastClick = null;
    }
}

実際のアプリケーションでは、ピースを別のピースの上に置くことを許可しない、空のスペースでの最初のクリックを無視する、正当な移動のみを強制するなど、あらゆる種類のエラー処理が必要になると思います...

于 2013-03-01T21:38:49.153 に答える