我想在HTML元素中添加一些数据,因此我使用了以下代码:
$("#bookListDiv").append(data.HTMLString);
并且一切正常,但是我想在显示此元素时添加fadein动画,所以我将其修改为:
$(data.HTMLString).hide().appendTo("#bookListDiv").fadeIn(1000);
动画正在使用Chrome,但在Firefox上我在控制台中看到以下错误: TypeError:Window.getComputedStyle的参数1未实现接口Element。 我使用的是jquery 1.8.2。
你能告诉我什么是错的吗?我假设有数据,但在第一种方法中,一切都正常。答案 0 :(得分:2)
如果您在getComputedStyle
上致电<html>
,也会收到此消息。它应该是常识,但我有一个递归函数,它使用此函数从内部元素冒出来,并在文档根目录结束时给出错误。
答案 1 :(得分:1)
我通过在fadeIn函数之前添加延迟找到了解决方案。 更改后的代码:
$(data.HTMLString).hide().appendTo("#bookListDiv").delay(100).fadeIn(1000);
正如我已经注意到,延迟中的数字应调整为数据大小,在我的情况下,7KB json数据可以正常工作,但我从1000开始。
答案 2 :(得分:1)
这个问题在jQuery中没有固定:http://bugs.jquery.com/ticket/12462。
解决方法是在将HTML提供给jQuery之前将其包装在单个元素中。
答案 3 :(得分:0)
尝试确保您也使用正确的标记语法。
我使用AngularJS动态更改已禁用的按钮状态,同时隐藏/显示一个按钮...这使得Firefox出现了&#34; Window.getComputedStyle没有实现接口元素&#34 ;错误(但Safari / Chrome / IE)。
在我的情况下,真正的问题是我正在使用的标记没有匹配的开始/结束标记:<button ng-disabled="!x">Click</div>
纠正后:<button ng-disabled="!x">Click</button>
事情很好。
奇怪的是,之前的两个答案都是部分解决方案:在我的隐藏/显示周围包含$ timeout,因为第一个发布的答案建议有效(但延迟必须是一个很大的数量)并将元素包装在一个额外的元素中同样,但不是我需要的实现(并创建了其他问题)。
我已尝试过,但根本无法获取代码示例来重现此问题。