0

我有一个(Javascript)工具,只要用户点击屏幕,它就会动态创建一个 div。

_newDiv = document.createElement('div');

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

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

这在 Firefox 中完美运行,但在 IE 8 中不起作用。有什么技巧可以用来解决这个问题吗?

4

2 回答 2

2

问题解决了!

事实证明,由于使用 progid:DXImageTransform 使动态创建的 div 变得透明,IE 没有捕获该 div 的 onmousedown 事件。问题通过插入解决了

background-image:url(/none)

在 div 的样式表中。出于某种原因,即使插入了不存在的图像,它也可以工作,所以我使用了它。

于 2011-09-11T12:01:14.580 回答
0

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

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

所以在你的情况下:

_newDiv.onmousedown = function(event) {
    onNewDivMouseDown(event || window.event);
};
于 2011-09-10T14:23:44.377 回答