在javascript中将单击的对象保留在数组中
我用javascript做了一个益智游戏。我制作了一些对象,以保持与每个pazzle方块相关的属性。我想获取与onclick相关的对象id(而不是div id)。如何获取与单击的div相关的特定对象id在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
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;i if(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