IE 8 中绝对奇怪的appendTo 问题

发布于 2024-12-07 10:08:18 字数 461 浏览 2 评论 0原文

以下代码几乎适用于所有情况(变量名称已更改):

this.$something.appendTo($container);

但在 IE8 中,它只是......不执行附加操作。没有错误。没有警告。不是呜咽。纯粹是运气好,我们发现了一些没有明显原因的东西:

$('<div class="hideme">ihateIE</div>').appendTo($('body')).remove();
this.$something.appendTo($container);

这不是时间问题 - 不涉及 setTimeout,所有变量要么是当时创建的,要么已经存在了一段时间。而且无论您附加什么,无论您将其附加到何处,只要您将某物附加到某物,它就可以工作。

为什么,为什么,为什么,为什么,为什么?我讨厌把这个 hack 留在我的代码中。

The following code works great in almost everything (variable names changed):

this.$something.appendTo($container);

But in IE8, it was just... not doing the append. No error. No warning. Not a whimper. Through sheer luck, we found something that worked for no discernable reason:

$('<div class="hideme">ihateIE</div>').appendTo($('body')).remove();
this.$something.appendTo($container);

It's not a timing issue - there's no setTimeout involved and all the variables are either created right then or have been around for a while. And it works no matter what you append, no matter where you append it to, as long as you append SOMETHING to SOMETHING.

Why, why, why, why, why? I hate leaving this hack in my code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文