如何在IE中为动态创建的div设置onmousedown事件?

时间:2011-09-10 14:09:40

标签: javascript internet-explorer javascript-events onmousedown

我有一个(javascript)工具,每当用户点击屏幕时动态创建一个div。

_newDiv = document.createElement('div');

现在,在我创建了_newDiv之后,我想为它分配一个onmousedown事件。

_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };

这在Firefox中运行良好,但在IE 8中不起作用。我可以使用任何黑客来解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

问题解决了!

事实证明,由于使用progid:DXImageTransform使动态创建的div变得透明,因此IE没有捕获所述div的onmousedown事件。插入

解决了这个问题
background-image:url(/none)
在div的样式表中

。由于某种原因,即使插入了不存在的图像,它也能正常工作,所以我使用了它。

答案 1 :(得分:0)

在IE9之前,event对象未传递给处理程序。相反,它是一个全局变量。因此传统的习语是:

function handler(event) {
  event = event || window.event;
  // ...
}

所以在你的情况下:

_newDiv.onmousedown = function(event) {
    onNewDivMouseDown(event || window.event);
};