我正在尝试使用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。
答案 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的结构,以便我们提供更多帮助。