我尝试了几种方法来删除动画(从html属性本身):
element.components["animation__0"].remove();
//above works, but has no affect on html list, just "stops" animation.
delete element.components.animation__0;
//works, in theory but html attribute still there
$ (" # id ") .removeAttr("animation__0");//结果如下错误:
aframe-animation-component.js:468 Uncaught TypeError: Cannot read property '2' of null(…)
getUnit @ aframe-animation-component.js:468
getValidValue @ aframe-animation-component.js:523
getTweenValues @ aframe-animation-component.js:584
(anonymous function) @ aframe-animation-component.js:601
(anonymous function) @ aframe-animation-component.js:594
getTweensProps @ aframe-animation-component.js:592
getTweens @ aframe-animation-component.js:614
createAnimation @ aframe-animation-component.js:755
animation @ aframe-animation-component.js:784
update @ aframe-animation-component.js:128
updateProperties @ component.js:211
value @ a-entity.js:446
value @ a-entity.js:607
attr @ jquery.js?hash=22a0055…:8028
removeAttr @ jquery.js?hash=22a0055…:8068
(anonymous function) @ jquery.js?hash=22a0055…:7991
each @ jquery.js?hash=22a0055…:442
each @ jquery.js?hash=22a0055…:194
removeAttr @ jquery.js?hash=22a0055…:7990
(anonymous function) @ VM8102:1
我也试图删除组件等后flushToDOM()…似乎没有改变任何html
Code Pen: http://codepen.io/msj121/pen/yVVmvL
看看你的笔叉:http://codepen.io/thoragio/pen/xRgKBQ
我用cylinder.removeAttribute("animation__scale");
代替了cylinder.components["animation__scale"].remove();
, DOM现在正在更新。
另外,第一个console.log()
需要在setTimeout()
方法之外,否则您只是同时调用它们。