我尝试了几种方法来删除动画(来自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
答案 0 :(得分:2)
看一下你的笔的这个叉子: http://codepen.io/thoragio/pen/xRgKBQ
我将cylinder.components["animation__scale"].remove();
替换为cylinder.removeAttribute("animation__scale");
,现在正在更新DOM。
此外,第一个console.log()
需要在setTimeout()
方法之外,否则您只是同时调用它们。