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

发布于 2024-12-04 10:21:51 字数 341 浏览 1 评论 0原文

我有一个(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月光色 2024-12-11 10:21:51

问题解决了!

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

background-image:url(/none)

通过插入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

background-image:url(/none)

in the div's stylesheet. For some reason it works even if a non-existing image is inserted, so I used that.

末骤雨初歇 2024-12-11 10:21:51

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

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

所以就你而言:

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

Prior to IE9, the event object was not passed to the handler. Instead, it's a global variable. The traditional idiom therefore is:

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

So in your case:

_newDiv.onmousedown = function(event) {
    onNewDivMouseDown(event || window.event);
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文