Javascript 如何将此对象附加到等轴测地图上的特定平铺?

Javascript 如何将此对象附加到等轴测地图上的特定平铺?,javascript,jquery,append,Javascript,Jquery,Append,我有一个等轴测地图,有可选择的瓷砖。地图由一个矩阵组成,如$('div')。gameMap({map:[[{“tile”:“tile_0”,“object”:“anObjectEntile”},{“tile”:“tile_3”,“object”:“}],{…}]],地图大小:3})如果该磁贴在对象中有某个对象:,则该磁贴在该磁贴的顶部有该对象(在我的例子中,是一个石油井架的图像) 有一个“放置”按钮,单击该按钮时,应将井架对象放置在当前选定的平铺顶部 然而,我遇到了两个问题: 知道当前选择了哪个

我有一个等轴测地图,有可选择的瓷砖。地图由一个矩阵组成,如
$('div')。gameMap({map:[[{“tile”:“tile_0”,“object”:“anObjectEntile”},{“tile”:“tile_3”,“object”:“}],{…}]],地图大小:3})如果该磁贴在
对象中有某个对象:
,则该磁贴在该磁贴的顶部有该对象(在我的例子中,是一个石油井架的图像)

有一个“放置”按钮,单击该按钮时,应将井架对象放置在当前选定的平铺顶部

然而,我遇到了两个问题:

  • 知道当前选择了哪个磁贴

  • 增加单个石油井架

  • 起初,我想找到一种方法来修改地图的矩阵,将对象的名称(
    oildrick
    )插入到磁贴的对象参数中,但现在我认为更好的解决方案是将
    oildrick
    附加到磁贴中。我不知道如何附加到特定的磁贴,而不是每个磁贴

    我已经设置了代码来查看和使用:

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

    我玩了
    $(“.tile”).append($(“.oildrick”)虽然我知道这会附加到每个磁贴上。但我对追加的了解还不够,还没有弄清楚如何将其限制在单个实例中

    每个瓷砖都有一个唯一的ID。我也尝试过这样做,以便在某个瓷砖上添加一个石油井架:

    $("#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");
                }
          }
    }
    
    但这也无济于事。我想我的方向是对的?有人能帮忙吗?

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

    .style.background = ...
    // should be
    .css("background",...)
    
    最重要的是:

    document.getElementById(...)
    // should be
    $("#...")
    
    更容易,你不觉得吗?然后,通过创建一个var
    currentTile
    并在用户选择一个tile时保存它,就可以简单地解决这个问题。单击“位置”时,
    $(currentTile).append($(“.oildrick”)和井架移动到所选瓷砖的位置

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

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

    .style.background = ...
    // should be
    .css("background",...)
    
    最重要的是:

    document.getElementById(...)
    // should be
    $("#...")
    
    更容易,你不觉得吗?然后,通过创建一个var
    currentTile
    并在用户选择一个tile时保存它,就可以简单地解决这个问题。单击“位置”时,
    $(currentTile).append($(“.oildrick”)和井架移动到所选瓷砖的位置


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

    太棒了,您都改进了代码并解决了问题!天才!现在唯一的问题是为什么在你移除井架后不能再次“重新附加”…我以为这是个主意。这里有一个标志var
    drillPlaced=true
    ,只需在
    $(“#placeButton”)中对其进行注释即可。单击(function()…
    ,下面是一个关于看似附加的问题的后续问题,如果您想看一下:-)太棒了,您都改进了代码并解决了问题!天才!现在唯一的问题是为什么在你移除井架后不能再次“重新附加”…我以为这是个主意。有一个标志var
    drillPlaced=true
    ,只需在
    $(“#placeButton”)中对其进行注释即可。单击(函数()…
    ,如果您想查看,这里有一个关于看似附加的问题的后续问题:-)