我有一个(javascript)工具,每当用户点击屏幕时动态创建一个div。
_newDiv = document.createElement('div');
现在,在我创建了_newDiv之后,我想为它分配一个onmousedown事件。
_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };
这在Firefox中运行良好,但在IE 8中不起作用。我可以使用任何黑客来解决这个问题吗?
谢谢!
答案 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);
};