使用数组获取随机div的ID

时间:2014-03-10 10:52:52

标签: javascript arrays

我正在尝试使用JavaScript创建一个右键单击功能,所以我想我会使用鼠标悬停功能,例如:

mysteryDiv.onmouseover=function(){
    if (rightMBclicked === true)
    {
    console.log(mysteryDiv.id);
    }
}

问题是,我无法弄清楚如何获得'mysteryDiv',这里是创建块的函数(我需要访问它们),以及一些重要的变量:

var blocknum = 0;
var blockmax = 2500;
var blocks = [];

function createBlocks()
    {
    if (blocknum < blockmax)
    {
    blocknum += 1;
    var block = document.createElement("div");
    block.className = "block"; 
    block.id = "block" + blocknum;
    blocks.push(blocknum);
    block.style.width = block_width + "px";
    block.style.height = block_height + "px";
    block.style.cssFloat = "left";
    //block.style.backgroundColor = "#228B22";
    block.style.backgroundImage="url('textures/grass.jpg')";
    document.getElementById("container").appendChild(block,container.firstChild);
    createBlocks();
    }
    else
    {
    if (blocknum === blockmax)
    {
    createPlayer();
    paused = false;
    }
    }
    }

编辑:

我正在尝试获取鼠标光标所在的块(mysteryDiv)的ID。

2 个答案:

答案 0 :(得分:0)

我假设您要处理动态创建块的事件。请试试这个......希望这就是你想要的......我不确定rightMBclicked是什么......对于测试案例,它设置为true

//after this line
block.style.backgroundImage="url('textures/grass.jpg')"; 

//here
block.onmouseover = function(e){

    if (rightMBclicked === true)
    {
        console.log(e);
        console.log(this.id);
    }
};

//before this line
document.getElementById("container").appendChild(block,container.firstChild);

答案 1 :(得分:0)

乍一看,您可能需要将相同的事件处理程序绑定到所有div。

这样的事情:

handlerFunction = function(e)
{
        console.log(e)

}

divElements = document.getElementsByTagName("div")

for (i in divElements)
    divElements[i].onmouseover = handlerFunction

当然,也许你会因为泡泡而遇到麻烦。您可能希望更具体地了解html的结构,以便我们提供更多帮助。