如何在IE中为动态创建的div设置onmousedown事件?
我有一个(Javascript)工具,每当用户单击屏幕时,它都会动态创建一个 div。
_newDiv = document.createElement('div');
现在,在创建 _newDiv
后,我想为其分配一个 onmousedown
事件。
_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };
这在 Firefox 中完美运行,但在 IE 8 中不起作用。有什么办法可以用来解决这个问题吗?
I have a (Javascript) tool which dynamically creates a div whenever the user clicks on the screen.
_newDiv = document.createElement('div');
Now, after I've created _newDiv
, I want to assign a onmousedown
event to it.
_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };
This works perfectly in Firefox, but doesn't work in IE 8. Is there any hack I can use to solve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题解决了!
事实证明,由于动态创建的 div 使用 progid:DXImageTransform 变得透明,因此 IE 没有捕获该 div 的 onmousedown 事件。 解决了这个问题
通过插入div 的样式表 。由于某种原因,即使插入不存在的图像它也能工作,所以我使用了它。
Problem solved!
It turns out that due to the fact that the dynamically created div was made transparent using progid:DXImageTransform, IE didn't capture the onmousedown event for said div. The problem was solved by inserting
in the div's stylesheet. For some reason it works even if a non-existing image is inserted, so I used that.
在 IE9 之前,
event
对象不会传递给处理程序。相反,它是一个全局变量。因此,传统的习惯用法是:所以就你而言:
Prior to IE9, the
event
object was not passed to the handler. Instead, it's a global variable. The traditional idiom therefore is:So in your case: