我有一个可选择的瓷砖等轴测图。地图由诸如$('div').gameMap({map:[[{"tile":"tile_0","object":"anObjectOnTile"},{"tile":"tile_3","object":""}], [{...}]],mapsize:3});
之类的矩阵组成。如果图块在object:""
中有某些内容,则该图块在该图块的顶部具有该对象(在我的情况下,是一个石油井架的图像)
有一个“放置”按钮,单击此按钮时,应将油井架对象放在当前选定的磁贴上。
但是,我遇到了两个问题:
了解当前选择的图块
添加单个石油井架
首先,我想找到一种方法来修改地图的矩阵,将对象的名称(oilDerrick
)插入到tile的object参数中,但现在我认为更好的解决方案是附加{{1}到瓷砖。我无法弄清楚如何附加到特定的图块而不是每个图块。
我已经设置了代码来查看并使用:http://jsfiddle.net/briz/jdhPW/13/
在地图的矩阵中设置了一个oilDerrick对象供您查看,可以通过删除矩阵中的单词oilDerrick
来删除
我和oilDerrick
玩过,虽然我知道会附加到每个牌上。但我只是不知道如何将其限制为单个实例。
每个磁贴都有唯一的ID。我也试过这个,以便将oilDerrick添加到某个瓷砖:
$(".tile").append($('.oilDerrick'));
但这也无济于事。我想我正朝着正确的方向前进?有人可以帮忙吗?
答案 0 :(得分:1)
你的代码有点乱。例如,你使用jquery但是有很多直接的DOM操作。
.style.background = ...
// should be
.css("background",...)
最重要的是:
document.getElementById(...)
// should be
$("#...")
更容易,你不觉得吗?然后,通过创建var currentTile
来解决问题,当用户选择一个tile时,它会保存它。当点击“地点”时,$(currentTile).append($('.oilDerrick'));
并且石油井架移动到选定瓷砖的位置。
无论如何,您可以在链接中看到更多详细信息。