Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将单击的对象保留在数组中_Javascript_Arrays_Object - Fatal编程技术网

在javascript中将单击的对象保留在数组中

在javascript中将单击的对象保留在数组中,javascript,arrays,object,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

我用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;
}
window.onload=function(){
createDivs();
对象();
随机();
onClickEventHander(事件);
};
var-getId;
var x=3;
var计数=0;
var tileSize=600/x;
var array2=[];
var对象=[];
函数createDivs(){
var计数=0;
对于(变量i=0;i0){//按行断开
如果(i==count&&j==0){
element.style.clear=“两者”;
}
}
element.style.float=“left”;
document.getElementById('puzzle-body').appendChild(元素);
}
计数++;
}
}
函数对象(){
var计数=0;
对于(变量i=0;iif(count)要建立div和对象id之间的关系,我认为您使用了变量count。但是在createDivs函数中,您在first for loop和objects()中增加了count函数在second for loop中增加了count。若要解决此问题,请在createDivs函数中将count++从第一个循环移动到第二个for loop。然后我如何在onclick()事件中标识相关对象。可以在onClickEventHander中将count作为参数传递。然后在onClickEventHander函数中,可以将对象id作为对象[count]获取.id或也请注意,您的对象id与count:objName.id=count相同;实际上,count变量被定义为将对象推入数组并为对象提供id。我想为onclickeventHandler保留一个数组。如果您能支持我实现这一点,游戏应该做什么@PriyanthaWeerasinghe