我有一个等轴测图,有可选择的瓷砖。该地图由一个矩阵形成,例如$('div').gameMap({map:[[{"tile":"tile_0","object":"anObjectOnTile"},{"tile":"tile_3","object":""}], [{...}]],mapsize:3});
如果瓦片在object:""
内有东西,那么该瓦片在该瓦片的顶部具有该对象(在我的情况下是石油井架的图像)。如何将此对象附加到等轴测图上的特定图块?
有一个地方按钮,当点击时应该在当前选择的瓷砖顶部放置一个石油井架物体。
不过,我遇到了两个问题:
知道哪些瓷砖当前选择
添加单个井架
起初我想图个方法来修改地图的矩阵,以将对象的名称(oilDerrick
)插入到tile的对象参数中,但现在我认为更好的解决方案是appen d oilDerrick
到瓦片。我无法弄清楚如何追加到特定的瓷砖,而不是每瓷砖。
我得设置来看待和玩代码:http://jsfiddle.net/briz/jdhPW/13/
有一个在地图上的矩阵设置为您查看oilDerrick对象,它可以通过删除字oilDerrick
被删除矩阵
我玩$(".tile").append($('.oilDerrick'));
,虽然我知道这将附加到每个瓷砖。但是我根本不知道如何追加以确定如何将其限制为单个实例。
每个瓷砖都有一个唯一的ID。我也试过这种为了一个oilDerrick添加一定瓷砖:
$("#placeButton").click(function()
{
for (var y in config.map)
{
for (var x in config.map[y])
{
document.getElementById(obj.attr('id') + '_tile_' + x + '_' +y).appendChild(".oilDerrick");
}
}
}
但这来到无济于事为好。我想我正朝着正确的方向前进?谁能帮忙?
太棒了,你们都让代码更好,解决了问题!天才!现在唯一的问题是,为什么卸下井架后不能“重新附加”... – Briz
我认为这是主意。有一个标志var'drillPlaced = true',只是在'$(“#placeButton”)中注释它。click(function()...' –
这里是关于看似追加问题的后续问题,如果你想看看:-) http://stackoverflow.com/questions/8189579/why-cant-i-append-an-element-remove-它 - 则 - 追加最相同元件-A-第二 – Briz