如何将此对象附加到等轴测图上的特定图块?

时间:2011-11-18 19:28:07

标签: javascript jquery append

我有一个可选择的瓷砖等轴测图。地图由诸如$('div').gameMap({map:[[{"tile":"tile_0","object":"anObjectOnTile"},{"tile":"tile_3","object":""}], [{...}]],mapsize:3});之类的矩阵组成。如果图块在object:""中有某些内容,则该图块在该图块的顶部具有该对象(在我的情况下,是一个石油井架的图像)

有一个“放置”按钮,单击此按钮时,应将油井架对象放在当前选定的磁贴上。

但是,我遇到了两个问题:

  1. 了解当前选择的图块

  2. 添加单个石油井架

  3. 首先,我想找到一种方法来修改地图的矩阵,将对象的名称(oilDerrick)插入到tile的object参数中,但现在我认为更好的解决方案是附加{{1}到瓷砖。我无法弄清楚如何附加到特定的图块而不是每个图块。

    我已经设置了代码来查看并使用:http://jsfiddle.net/briz/jdhPW/13/

    在地图的矩阵中设置了一个oilDerrick对象供您查看,可以通过删除矩阵中的单词oilDerrick来删除

    我和oilDerrick玩过,虽然我知道会附加到每个牌上。但我只是不知道如何将其限制为单个实例。

    每个磁贴都有唯一的ID。我也试过这个,以便将oilDerrick添加到某个瓷砖:

    $(".tile").append($('.oilDerrick'));

    但这也无济于事。我想我正朝着正确的方向前进?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

I did some modifications

你的代码有点乱。例如,你使用jquery但是有很多直接的DOM操作。

.style.background = ...
// should be
.css("background",...)

最重要的是:

document.getElementById(...)
// should be
$("#...")

更容易,你不觉得吗?然后,通过创建var currentTile来解决问题,当用户选择一个tile时,它会保存它。当点击“地点”时,$(currentTile).append($('.oilDerrick'));并且石油井架移动到选定瓷砖的位置。

无论如何,您可以在链接中看到更多详细信息。