将点击的对象保存在javascript中的数组中

时间:2015-03-19 11:31:44

标签: javascript arrays object

我用javascript制作了一个益智游戏。我已经制作了一些对象来保留一些与每个pazzle方块相关的属性。我想得到与onclick相关的对象id。(不是div id)。如何获取与点击的div相关的特定对象ID?

window.onload = function() {
    createDivs();
    objects();
    random();
    onclickeventHanlder(event);
};


var getId;
var x = 3;
var counting = 0;
var tileSize = 600 / x;
var array2 = [];
var object = [];


function createDivs() {

    var count = 0;
    for (var i = 0; i < x; i++) {
        for (var j = 0; j < x; j++) {
            var id = i + "" + j;

            var element = document.createElement('div');
            element.setAttribute("class", "pieces");
            element.setAttribute("id", id);
            element.style.width = 600 / x + "px";
            element.style.height = 600 / x + "px";
            element.style.margin = "0px auto";
            element.style.overflow = "hidden";
            element.setAttribute("onclick", "onclickeventHanlder(this)");

            if (count > 0) {  // to break row-wise
                if (i == count && j == 0) {
                    element.style.clear = "both";
                }
            }
            element.style.float = "left";
            document.getElementById('puzzle-body').appendChild(element);  
        }
        count++;
    }
}


function  objects(){
var count = 0;

for (var i = 0; i < x; i++) {
    for (var j = 0; j < x; j++) {

        var objName = new Object();
        objName.position = -(j * tileSize) + "px" + " " + -(i * tileSize) + "px";
        objName.divID = document.getElementById(i + "" + j);
        objName.id = count;
        if(count<x*x-1){
        objName.state = true; // if image is there
        }else{
        objName.state = false; // if image isn't there  
        }
    object[count] = objName;
    count++;
    }
}
}


function reset(){
    var looping = 0;

    for (var i = 0; i < x; i++) {
        for (var j = 0; j < x; j++) {

        var obj  = object[looping];

        if(obj.id<8){
        var urlString = 'url("../images/Golden.jpg")';
        obj.divID.style.backgroundImage = urlString;
        obj.divID.style.backgroundPosition = obj.position; 
            }
            looping++;
        }
    }

}


function random(){

   var array = [];

       while (array.length < ((x * x) - 1)) {
        var randomnumber = Math.floor(Math.random() * ((x * x) - 1));
        var found = false;
        for (var i = 0; i < array.length; i++) {
            if (array[i] == randomnumber) {
                found = true;
                break;
            }
        }
        if (!found) {
            array[array.length] = randomnumber;
        }
    }


        var looping = 0;
        for (var i = 0; i < x; i++) {
        for (var j = 0; j < x; j++) {
            if (looping < x * x-1) {
                var random = array[looping];

                var obj = object[random];
                var obj2 = object[looping];

                        if(obj.id<8){
              var urlString = 'url("../images/Golden.jpg")';
              obj.divID.style.backgroundImage = urlString;
              obj.divID.style.backgroundPosition = obj2.position; 
            }
            }
            looping++;
        }


}

}

function onclickeventHanlder(event) {
var pos = event;
}

0 个答案:

没有答案