0

編集:問題は私のコードにあり、正しいインデックスで配列をクエリしていませんでした。この問題の答えを探している人には、Karthik Ar が正しく答えてくれました。コメントありがとうございます!

for ループ内で一意のキャンバス要素の配列を作成するのに苦労しています。すべての要素は、作成された最初の要素のコピーのようです。このキャンバスを配列に保存し、後でいつでもコンテキストにアクセスする必要があるため、これを言っています。

    var _ctxs = new Array();
    function createCells()
            {
                _w = window.innerWidth;
                _h = window.innerHeight;
                var side = 300;
                //set amount of steps
                var stepsW = Math.ceil(_w/side) + 1;
                var stepsH = Math.ceil(_h/(side/2)) + 1;

                console.log("create cells");
                for (var i = 0; i < stepsH; i++) 
                {
                    var p = (i%2 == 0)?0:side/2;
                    for (var j = 0; j < stepsW; j++) 
                    {
                        var _tempCanvas = $('<canvas/>', {id: "i_" + i + "_" + j, width : side, height : side});
                        _tempCanvas.css({
                            'position' : 'absolute',
                            'top' : (i*(side/2)+1) - side/2,
                            'left' : (j*side + p) + 1 - side/2
                        });

                        //var _tempCtx = _tempCanvas[0].getContext('2d');
                        _ctxs.push(_tempCanvas[0]);

                        $('body').prepend(_tempCanvas);
                        k++;
                    };
                };
            }

何か考えはありますか?前もって感謝します!

4

1 に答える 1

0

あなたのコードで動作しているように見えます配列をチェックしてください。

$(document).ready(jqueryready);
function jqueryready(){
for (var i = 0; i < 5; i++) 
            {
for (var j = 0; j < 5; j++) 
                {
                    var _tempCanvas = $('<canvas/>', {id: i+""+j, width : 10, height : 10});
                    console.log(_tempCanvas[0].id);
                    $('body').prepend(_tempCanvas);
                };
                }
}

これにより、キャンバスの一意の ID が作成されます。

于 2013-01-06T13:50:30.450 に答える